:root{--ink:#152d27;--muted:#71817a;--green:#143a32;--green2:#2b6252;--gold:#d7ac65;--line:#e5eae6;--paper:#f7f8f5;--white:#fff;--shadow:0 16px 45px rgba(22,44,35,.045);font-family:-apple-system,BlinkMacSystemFont,'Pretendard','Noto Sans KR',system-ui,sans-serif;font-size:15px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a5c6b3;outline-offset:2px}a{color:var(--green2)}#shell{min-height:100vh;display:flex}.sidebar{width:252px;background:#123a30;color:#fff;display:flex;flex-direction:column;padding:32px 17px;flex:none;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin:0 9px 76px}.brand-icon,.auth-logo{width:43px;height:43px;border-radius:13px;background:#f8f6ee;color:#183c32;font-family:Georgia,serif;font-weight:800;font-size:29px;display:flex;align-items:center;justify-content:center;letter-spacing:-3px}.brand-icon span,.auth-logo span{color:#bd8d48}.brand strong{display:block;font-size:18px;letter-spacing:-.045em}.brand small{display:block;font-size:8px;letter-spacing:.17em;color:#a6c8b8;margin-top:5px}.side-label{font-size:10px;letter-spacing:.18em;color:#89b3a2;margin:0 20px 14px}.nav{display:grid;gap:7px}.nav-link{border:0;background:transparent;color:#bed4ca;text-align:left;padding:14px 16px;border-radius:12px;display:flex;align-items:center;gap:15px;font-weight:600}.nav-link.active,.nav-link:hover{color:white;background:#2b5b4b}.nav-icon{font-size:22px;line-height:20px;font-weight:300;width:22px;text-align:center}.nav-shortcut{margin-left:auto;opacity:.45;font-size:11px}.sidebar-bottom{margin-top:auto;padding:16px 14px 0;border-top:1px solid #356254}.connection{display:flex;gap:8px;align-items:center;font-size:12px;color:#cce4d5}.status-dot{width:8px;height:8px;display:inline-block;background:#9cbea7;border-radius:50%;box-shadow:0 0 0 3px #537466}.connection.offline .status-dot{background:#e5b568}.side-note{font-size:11px;line-height:1.9;color:#90b4a5;margin-top:18px}.layout{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:86px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.78);gap:12px}.breadcrumbs{font-size:11px;letter-spacing:.12em;font-weight:650;color:#99a6a0;white-space:nowrap}.breadcrumbs span{padding:0 13px;color:#b7c7bd}.breadcrumbs b{font-size:13px;color:var(--ink);letter-spacing:0}.header-right{display:flex;align-items:center;gap:13px}.sync-pill{font-size:11px;padding:7px 12px;background:#e8f1e8;color:#427459;border-radius:20px;font-weight:700}.sync-pill.offline{background:#fbf0dc;color:#8c6d36}.icon-button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:white;font-size:20px;color:var(--green)}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ded9c7;color:#315447;font-family:Georgia;font-weight:bold}.mobile-only{display:none}main{width:min(1180px,100%);margin:0 auto;flex:1;padding:45px clamp(22px,5%,72px) 76px}.foot{border-top:1px solid var(--line);font-size:10px;letter-spacing:.15em;color:#a2b0a8;padding:20px 5%;text-align:right}.foot span{color:#d2ae71}.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:800;color:#8aab8d;margin:0 0 14px}.page-title{font-family:Georgia,'Noto Serif KR',serif;font-size:clamp(28px,3.3vw,42px);letter-spacing:-.05em;line-height:1.2;margin:0 0 15px}.description{color:#788980;line-height:1.9;margin:0}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:34px}.page-head .btn{flex:none}.home-hero{background:linear-gradient(118deg,#14392f 0%,#1b4d40 64%,#275644 100%);color:white;padding:38px clamp(25px,5%,55px);border-radius:23px;position:relative;overflow:hidden;margin-bottom:24px;min-height:252px;display:flex;align-items:center;justify-content:space-between}.home-hero:before{content:'E';font-family:Georgia;position:absolute;right:10%;top:-95px;color:rgba(255,255,255,.035);font-size:350px}.home-hero .eyebrow{color:#e0c184}.home-hero h1{font-size:clamp(28px,3vw,43px);letter-spacing:-.055em;line-height:1.45;margin:0 0 15px;position:relative}.home-hero p{font-size:13px;line-height:1.8;color:#bfdad0;position:relative;margin:0}.hero-ornament{width:160px;height:160px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(241,227,193,.35);font-size:84px;color:#e0c184;font-family:Georgia;position:relative;transform:rotate(-7deg)}.hero-ornament:after{content:'';position:absolute;width:190px;height:190px;border:1px dashed rgba(241,227,193,.2);border-radius:50%}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:34px}.stat,.panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:17px}.stat{padding:23px 25px}.stat-label{font-size:12px;color:#829086;font-weight:650}.stat-value{display:flex;align-items:end;gap:6px;margin-top:8px;font-family:Georgia,serif;font-size:36px}.stat-value small{font-family:inherit;font-size:12px;color:#a1aba2;padding-bottom:7px}.stat:nth-child(2) .stat-value{color:#9d7740}.stat:nth-child(3) .stat-value{color:#47796a}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 16px}.section-head h2{margin:0;font-size:19px;letter-spacing:-.035em}.text-button{border:0;background:transparent;font-weight:700;color:#4d7767;font-size:12px}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.learning-card{padding:23px 25px;background:#fff;border:1px solid #e4ebe4;border-radius:17px;display:block;text-align:left;width:100%;transition:transform .15s,border-color .15s}.learning-card:hover{transform:translateY(-2px);border-color:#a9c2b5}.learning-card h3{font-size:19px;letter-spacing:-.025em;margin:18px 0 8px;overflow-wrap:anywhere}.learning-card p{color:#6b8076;font-size:13px;line-height:1.7;min-height:23px;margin:0}.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:11px;color:#9aa9a1}.badge{font-size:10px;display:inline-flex;align-items:center;padding:5px 9px;border-radius:6px;background:#e8f1eb;color:#426c56;font-weight:700;white-space:nowrap}.badge.warn{background:#fff1df;color:#9b702f}.badge.muted{background:#f1f2ee;color:#7f8c84}.badges{display:flex;gap:5px;flex-wrap:wrap}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap}.search-box{display:flex;gap:9px;align-items:center;border:1px solid var(--line);background:#fff;padding:0 16px;border-radius:11px;min-height:48px;min-width:250px;flex:1;max-width:500px}.search-box input{border:0;outline:0;flex:1;min-width:60px;background:transparent;color:var(--ink)}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.filter{border:1px solid #dae5de;background:white;padding:9px 14px;border-radius:9px;font-weight:600;font-size:12px;color:#6d8075}.filter.selected{background:#1c4e40;color:#fff;border-color:#1c4e40}.btn{padding:12px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;font-weight:750;font-size:13px;border:1px solid #d9e4db;background:white;color:#234a3a;text-decoration:none}.btn.primary{background:#204e40;border-color:#204e40;color:white}.btn.danger{background:#fff4f1;border-color:#eacac1;color:#9b4c40}.btn.ghost{background:#f5f7f4}.btn.full{width:100%}.btn.small{padding:8px 11px;font-size:11px}.empty{border:1px dashed #c9d8cc;border-radius:18px;padding:62px 25px;text-align:center;background:#fcfdfa;color:#82928a}.empty-symbol{display:block;font-size:44px;font-family:Georgia;color:#b7c8b7;margin-bottom:16px}.empty h3{margin:0 0 7px;color:#3b6151;font-size:18px}.empty p{font-size:13px;line-height:1.8}.panel{padding:27px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:block;margin:16px 0;font-size:12px;font-weight:750;color:#607569}.field input,.field textarea,.field select,.auth-card input{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid #dce5dc;border-radius:9px;background:#fff;color:#18352b;outline:none}.field textarea{min-height:100px;resize:vertical;line-height:1.7}.field select{appearance:auto}.field-hint{font-weight:400;color:#97a79a;margin-top:5px;font-size:11px}.item-detail-header{display:flex;justify-content:space-between;gap:20px;align-items:start}.detail-expression{font-family:Georgia,serif;font-size:clamp(28px,3vw,41px);letter-spacing:-.02em;overflow-wrap:anywhere;margin:16px 0}.detail-translation{font-size:18px;font-weight:500;color:#587362;line-height:1.8}.detail-section{border-top:1px solid var(--line);padding:22px 0}.detail-section h3{font-size:13px;margin:0 0 13px;color:#5a7868}.detail-section p{white-space:pre-wrap;line-height:1.9;color:#354e43;margin:0;font-size:14px}.detail-section .placeholder{color:#b7c4b9;font-style:italic}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.learning-history-list{display:grid;gap:12px}.history-block{background:#fff;border:1px solid var(--line);padding:18px;border-radius:12px}.history-block h4{font-size:13px;margin:0 0 8px}.history-block p{font-size:12px;color:#7f9286;white-space:pre-wrap;margin:0;line-height:1.8}.divider{height:1px;background:var(--line);margin:22px 0}.review-card{padding:35px;background:#fff;border-radius:18px;border:1px solid var(--line);text-align:center}.review-card .eyebrow{margin-bottom:25px}.review-card h2{font:normal clamp(24px,4vw,39px) Georgia,serif;margin:0 0 20px;overflow-wrap:anywhere}.review-card .translation{font-size:17px;line-height:1.9;color:#557566;margin:24px 0}.review-buttons{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.notice{font-size:12px;padding:13px 15px;border-radius:10px;background:#f1f7f2;color:#4e745e;border:1px solid #dceadf;line-height:1.7;margin:16px 0}.notice.warning{background:#fff6e9;border-color:#f5e3c9;color:#976c2c}.pending-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.pending-row:last-child{border-bottom:0}.pending-row strong{font-size:12px}.pending-row small{display:block;color:#87988f;margin-top:5px}.controls{display:flex;flex-wrap:wrap;gap:7px}.switch-note{font-size:12px;line-height:1.8;color:#74867b}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:#143a32;color:white;padding:12px 18px;border-radius:10px;box-shadow:0 16px 44px #173e3040;opacity:0;pointer-events:none;transition:.25s;z-index:100;font-size:13px;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#dialog-root .overlay{position:fixed;inset:0;z-index:45;background:rgba(15,32,26,.48);display:flex;align-items:center;justify-content:center;padding:18px}#dialog-root .modal{max-width:780px;width:100%;max-height:min(85vh,900px);overflow-y:auto;background:#fff;border-radius:20px;padding:29px;box-shadow:0 20px 70px #132c2360}.modal-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-top h2{margin:0;font-size:21px}.auth-backdrop{position:fixed;z-index:80;inset:0;background:linear-gradient(140deg,#153e33,#245747);display:grid;place-items:center;padding:20px;overflow-y:auto}.auth-backdrop.hidden{display:none}.auth-card{background:#fcfdf8;border-radius:24px;padding:clamp(25px,5vw,42px);width:min(440px,100%);box-shadow:0 22px 90px #0d292f40}.auth-logo{background:#174336;color:#fff;margin-bottom:27px}.auth-card h1{font-family:Georgia,serif;font-weight:500;font-size:30px;letter-spacing:-.05em;line-height:1.4;margin:0}.auth-lead{font-size:12px;color:#829188;line-height:1.8;margin:15px 0 22px}.auth-tabs{display:flex;border-bottom:1px solid #dce6dc;margin-bottom:17px}.auth-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:12px 16px;color:#8c9a90;font-size:13px;font-weight:800}.auth-tabs button.selected{border-color:#27594a;color:#1d493a}.auth-card label{display:block;color:#486153;font-size:12px;font-weight:750;margin-bottom:16px}.auth-card input{margin-top:7px}.auth-message{font-size:12px;line-height:1.8;color:#9c5e34;min-height:18px}.privacy-note{font-size:10px;color:#98a69b;line-height:1.7}.bottom-nav{display:none}
@media(max-width:1000px){.sidebar{width:214px}.brand{margin-left:6px}.brand strong{font-size:16px}.brand small{font-size:7px}.page-head{align-items:start}}
@media(max-width:750px){.sidebar{display:none}.topbar{height:65px;padding:0 18px}.mobile-only{display:inline-flex;align-items:center;justify-content:center}.breadcrumbs{font-size:9px}.breadcrumbs span{padding:0 5px}.breadcrumbs b{font-size:12px}.sync-pill{font-size:9px;padding:7px}.avatar{display:none}.header-right{gap:5px}main{padding:28px 17px 90px}.foot{display:none}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(65px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -3px 14px #23463716;display:grid;grid-template-columns:repeat(4,1fr);z-index:20;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:transparent;color:#86988c;font-size:10px;font-weight:700;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}.bottom-nav button span{font-size:21px;line-height:24px}.bottom-nav button.active{color:#1d5140}.page-head{flex-wrap:wrap;gap:14px;margin-bottom:25px}.page-head .btn{margin-left:auto}.home-hero{min-height:215px;padding:29px}.home-hero h1{font-size:28px}.hero-ornament{display:none}.stats{gap:9px;margin-bottom:24px}.stat{padding:18px 15px}.stat-value{font-size:29px}.stat-label{font-size:10px}.cards-grid,.grid2{grid-template-columns:1fr}.section-head h2{font-size:17px}.learning-card{padding:20px}.search-box{max-width:none;min-width:0;flex-basis:100%}.toolbar{gap:9px}.panel{padding:22px}.detail-expression{font-size:29px}.detail-actions{margin-top:12px}}
@media(max-width:400px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-value{font-size:25px}.stat{padding:17px 10px}.stat-label{font-size:10px}.sync-pill{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-hero h1{font-size:25px}}
