@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#252740;background:#f7f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--purple:#5557d9;--muted:#8589a2;--line:#e8e9f2}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:flex}.sidebar{width:245px;background:#fff;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;font:800 19px Manrope,sans-serif;margin:0 7px 52px}.brand-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:var(--purple);color:#fff}.nav-caption,.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#999db1}.nav-caption{margin:0 10px 14px}.nav{display:flex;align-items:center;gap:13px;border:0;background:transparent;padding:13px 12px;border-radius:10px;color:#777c95;text-align:left;margin-bottom:5px;font-weight:600;font-size:13px}.nav span{font-size:17px}.nav.active{background:#f0f0ff;color:var(--purple)}.side-bottom{margin-top:auto;border:1px solid #ececff;background:#f8f8ff;border-radius:14px;padding:16px;font-size:12px;color:#8186a0;line-height:1.6}.side-bottom strong{display:block;color:#393c60;margin-top:9px}.side-bottom p{margin:5px 0 0}.mini-orb{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#e8e8ff;color:var(--purple);font-size:18px}.main{width:min(1150px,100%);margin:0 auto;padding:34px 44px 18px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:15px}.eyebrow{margin:0 0 8px}.topbar h1{font:800 27px Manrope,sans-serif;letter-spacing:-.8px;margin:0}.top-actions{display:flex;align-items:center;gap:12px}.today-pill{font-size:11px;color:#6d70c6;background:#eeeeff;padding:10px 12px;border-radius:9px}.primary,.secondary{border:0;border-radius:9px;padding:12px 16px;font-size:12px;font-weight:700}.primary{background:var(--purple);color:#fff;box-shadow:0 5px 12px #5557d91c}.secondary{background:#f0f0ff;color:var(--purple);border:1px solid #e3e3ff}.welcome{border-radius:17px;min-height:180px;background:linear-gradient(112deg,#4449bf,#7779eb);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:27px 32px;overflow:hidden}.eyebrow.light{color:#d6d8ff}.welcome h2{font:800 23px/1.35 Manrope,sans-serif;letter-spacing:-.4px;margin:7px 0 10px}.welcome p:not(.eyebrow){font-size:12px;color:#e1e2ff;margin:0}.hero-art{position:relative;width:220px;height:130px;flex-shrink:0}.float-card{position:absolute;background:#ffffffed;color:#4d50bd;box-shadow:0 12px 30px #25247733;border-radius:11px;padding:13px 17px;font-weight:800;transform:rotate(8deg)}.float-card span{display:block;font-size:10px;color:#898ca7;margin-top:7px}.fc1{left:13px;top:18px;font-size:17px;transform:rotate(-8deg)}.fc2{right:7px;top:1px;font-size:20px;transform:rotate(12deg);background:#e4e4ff}.fc3{right:28px;bottom:7px;font-size:15px;transform:rotate(5deg)}.study-head{display:flex;align-items:center;justify-content:space-between;margin:27px 0 13px;gap:12px}.study-head h2,.section-intro h2{font:800 18px Manrope,sans-serif;margin:0 0 5px}.study-head p,.section-intro p{font-size:12px;color:var(--muted);margin:0}.study-head select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 12px;font-size:12px;color:#525773;max-width:220px}.progress-line{height:5px;border-radius:9px;background:#e8e9f4;overflow:hidden}.progress-line div{height:100%;width:0;background:var(--purple);border-radius:9px;transition:width .2s}.study-meta{display:flex;justify-content:space-between;font-size:10px;color:#969ab0;margin:9px 0 10px}.flashcard-wrap{display:flex;align-items:center;justify-content:center;gap:17px}.flashcard{width:min(610px,calc(100% - 100px));height:275px;border:1px solid #e5e6f0;border-radius:16px;background:#fff;box-shadow:0 10px 32px #25264c08;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:19px 23px;color:#272a47;transition:transform .2s,border-color .2s}.flashcard:hover{border-color:#c9caff}.flashcard.flipped{background:#fbfbff;border-color:#c9caff}.card-top,.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-top span:first-child{font-size:9px;letter-spacing:1.4px;color:#777bd6;font-weight:800}.card-top span:last-child{font-size:9px;color:#a0a4b6;letter-spacing:.6px}.card-center{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:12px;padding:10px}.word{font:800 33px Manrope,sans-serif;letter-spacing:-.8px;overflow-wrap:anywhere}.hint{font-size:12px;color:#9297ad}.card-bottom{font-size:10px;color:#a1a5b6}.flip-icon{font-size:17px;color:#7478d6}.arrow{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:#fff;color:#777c98;font-size:20px;flex-shrink:0}.arrow:hover{background:#eeeeff;color:var(--purple)}.flip-instruction{text-align:center;font-size:10px;color:#9a9eb1;margin:13px 0 16px}kbd{font:10px 'DM Sans',sans-serif;border:1px solid #dedfec;border-bottom-width:2px;border-radius:4px;padding:2px 5px;background:#fff;color:#777c95}.rating-row{display:flex;justify-content:center;gap:12px}.rating{width:205px;display:grid;grid-template-columns:35px 1fr;grid-template-rows:auto auto;align-items:center;text-align:left;column-gap:10px;padding:11px 14px;border-radius:11px;border:1px solid var(--line);background:#fff}.rating>span{grid-row:1/3;width:33px;height:33px;display:grid;place-items:center;border-radius:9px;font-size:18px}.rating strong{font-size:12px}.rating small{font-size:10px;color:#999db0;margin-top:3px}.rating.no>span{background:#fff0ec;color:#d77c64}.rating.yes>span{background:#e7f8ef;color:#2b9b6a}.rating:hover{border-color:#c8caf5}.study-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;font-size:10px;color:#a0a4b7}.text-button{border:0;background:transparent;color:#777bd1;font-size:11px;font-weight:700}.hidden{display:none!important}.section-intro{margin-bottom:22px}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:15px}.deck-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;text-align:left;color:inherit}.deck-card:hover{border-color:#c6c8fa}.deck-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#eeeefe;color:#5c60d5;font-size:21px;margin-bottom:17px}.deck-card h3{font-size:14px;margin:0 0 7px}.deck-card p{font-size:11px;color:var(--muted);margin:0 0 15px}.deck-card .open-deck{font-size:11px;color:var(--purple);font-weight:700}.form-panel{max-width:680px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:27px}.form-panel form label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:700;color:#555a76;margin:17px 0}.form-panel input,.form-panel textarea,.form-panel select{width:100%;border:1px solid #e0e2ed;border-radius:9px;padding:12px;color:#333650;background:#fff;outline:none;font-size:13px}.form-panel input:focus,.form-panel textarea:focus,.form-panel select:focus{border-color:#8d90e8}.form-panel textarea{resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px}.divider{height:1px;background:var(--line);margin:28px 0 22px}.form-panel h3{font:700 14px Manrope,sans-serif}.new-deck-form{display:flex;align-items:flex-end;gap:12px}.new-deck-form label{flex:1}.privacy-note{font-size:10px;color:#9a9eb0;margin:20px 0 0}footer{display:flex;justify-content:center;gap:8px;color:#a1a5b7;font-size:10px;margin-top:35px;padding-bottom:8px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;background:#282b49;color:white;padding:12px 18px;border-radius:10px;font-size:12px;pointer-events:none;transition:.2s;box-shadow:0 10px 30px #15152c25;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.sidebar{width:65px;padding:20px 7px}.brand{margin:0 7px 40px}.brand>span:last-child,.nav-caption,.nav:not(.active){font-size:0}.nav{justify-content:center;padding:13px 6px;font-size:0}.nav span{font-size:18px}.side-bottom{display:none}.main{padding:23px 15px}.topbar h1{font-size:22px}.today-pill{display:none}.welcome{padding:22px;min-height:165px}.welcome h2{font-size:19px}.hero-art{width:100px;opacity:.7}.fc1{left:0;font-size:13px}.fc2{right:0}.fc3{right:0}.flashcard{width:calc(100% - 65px);height:260px;padding:16px}.flashcard-wrap{gap:7px}.arrow{width:32px;height:32px}.word{font-size:27px}.rating{width:50%;padding:9px;column-gap:7px}.rating small{font-size:9px}.study-footer{align-items:flex-start;flex-direction:column}.study-head select{max-width:145px}.new-deck-form{align-items:stretch;flex-direction:column}.form-panel{padding:19px}}

#excel-import-status { margin: 8px 0 0; min-height: 1.2em; overflow-wrap: anywhere; }
#excel-import-form input[type="file"] { max-width: 100%; padding: 10px; background: #fff; border: 1px solid #e4e5ef; border-radius: 10px; }

.card-color-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:14px auto 20px;padding:12px 14px;max-width:610px;background:#fff;border:1px solid var(--line);border-radius:12px}
.color-tools-title{font-size:11px;font-weight:700;color:#555a76}
.color-control{display:flex;align-items:center;gap:7px;font-size:11px;color:#777c95;cursor:pointer}
.color-control input[type=color]{width:32px;height:28px;padding:2px;border:1px solid #e0e2ed;border-radius:7px;background:#fff;cursor:pointer}
.reset-colors{padding:8px 10px;font-size:11px}
@media(max-width:760px){.card-color-tools{gap:9px;padding:10px}.color-tools-title{width:100%;text-align:center}.color-control{font-size:10px}}

/* Multiline card faces: preserve line breaks for lists and bullet points. */
.word { white-space: pre-line; }
#card-hint { white-space: pre-line; }
#card-back-preview { white-space: pre-line; }
#front-input, #back-input { white-space: pre-wrap; }

#card-front { white-space: pre-line; }

.manage-cards-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.manage-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.manage-card-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.manage-card-text strong,.manage-card-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manage-card-text strong{font-size:13px;color:var(--ink)}
.manage-card-text span{font-size:12px;color:var(--muted)}
button.danger{background:#fff0f0;color:#b42318;border:1px solid #ffd3d0;padding:8px 12px;border-radius:8px;cursor:pointer}

[hidden]{display:none!important}
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#f6f7fb,#e9eaff)}
.auth-panel{width:min(100%,420px);display:flex;flex-direction:column;gap:14px;background:#fff;padding:30px;border:1px solid #e4e5ef;border-radius:22px;box-shadow:0 24px 70px rgba(35,39,75,.10)}
.auth-panel h1{margin:8px 0 0;font-size:26px;color:var(--ink)}
.auth-panel>p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.auth-panel label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:var(--ink)}
.auth-panel input{width:100%;padding:12px 13px;border:1px solid #dfe1ed;border-radius:10px;font:inherit;box-sizing:border-box}
.auth-panel input:focus{outline:2px solid #7775ed;border-color:transparent}
.auth-brand{margin-bottom:8px}
.auth-status{min-height:18px;color:#b42318;font-size:13px}
.sync-status{font-size:11px;color:#a65c00;max-width:220px}
