:root{--color-primary:#4548e7;--color-primary-hover:#3639d4;--color-primary-light:#eef0ff;--gradient-brand:linear-gradient(135deg, #2b2d8f 0%, #4657d8 55%, #8b88e8 100%);--sidebar-bg:linear-gradient(180deg, #080e22 0%, #0d1d42 45%, #0a1630 100%);--sidebar-text:#ffffff9e;--sidebar-text-active:#fff;--sidebar-item-active-bg:#ffffff1a;--color-bg:#f7f8fc;--color-surface:#fff;--color-border:#e8eaf0;--color-text-primary:#0f1117;--color-text-secondary:#5c6070;--color-text-muted:#9da3b4;--color-success:#00b87a;--color-warning:#f5a623;--color-error:#e8324f;--color-info:#4548e7;--font-sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-card:0 1px 3px #0000000f;--shadow-card-hover:0 4px 12px #00000014;--shadow-modal:0 20px 60px #00000026;--shadow-primary:0 4px 14px #4548e74d}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.6}#root{width:100%;min-height:100svh}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--color-text-primary);margin:0}p{margin:0}button{font-family:var(--font-sans);cursor:pointer}input,select,textarea{font-family:var(--font-sans)}.chip{border-radius:var(--radius-full);font-size:var(--text-xs);align-items:center;gap:4px;padding:3px 10px;font-weight:600;line-height:1.4;display:inline-flex}.chip-completed{color:#00874f;background:#e6f9f1}.chip-in-progress{color:#b35c00;background:#fff4e6}.chip-scheduled{background:var(--color-primary-light);color:#3336b0}.chip-cancelled{color:#6b7280;background:#f5f5f5}.chip-active{color:#00874f;background:#e6f9f1}.chip-inactive{color:#6b7280;background:#f5f5f5}.chip-trial{color:#b35c00;background:#fff4e6}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow .18s}.card:hover{box-shadow:var(--shadow-card-hover)}.btn{height:40px;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;line-height:1;transition:opacity .15s,transform .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1.5px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:#fafbff;border-color:#c8cae0}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:#d02040}.btn-ghost{color:var(--color-text-secondary);background:0 0;border:none}.btn-ghost:hover:not(:disabled){color:var(--color-text-primary);background:#0000000a}.btn-sm{height:32px;font-size:var(--text-xs);border-radius:var(--radius-sm);padding:0 12px}.input{border:1.5px solid var(--color-border);width:100%;height:40px;font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-surface);border-radius:8px;outline:none;padding:0 12px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4548e71f}.input::placeholder{color:var(--color-text-muted)}.modal-backdrop{-webkit-backdrop-filter:blur(10px)saturate(140%);z-index:1000;background:#0f172a61;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-container{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:480px;position:relative}.modal-container.modal-md{max-width:640px}.modal-container.modal-lg{max-width:800px}.modal-close-glass{-webkit-backdrop-filter:blur(12px)saturate(160%);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;background:linear-gradient(#ffffffe6 0%,#f8fafcb3 100%);border:1px solid #e2e8f0b3;border-radius:50%;justify-content:center;align-items:center;transition:box-shadow .15s,color .15s;display:flex;box-shadow:inset 0 1px #ffffffe6,0 4px 12px #0f172a14}.modal-close-glass:hover{color:var(--color-text-primary);box-shadow:inset 0 1px #fffffff2,0 6px 16px #0f172a1f}.toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{color:#fff;font-size:var(--text-sm);background:#1a1d2e;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;animation:.2s toastIn;display:flex;box-shadow:0 4px 20px #00000040}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sidebar{background:var(--sidebar-bg);flex-direction:column;flex-shrink:0;width:240px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-nav-item{width:100%;height:44px;font-size:var(--text-sm);color:var(--sidebar-text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-weight:500;transition:background .15s,color .15s;display:flex}.sidebar-nav-item:hover{color:var(--sidebar-text-active);background:#ffffff12}.sidebar-nav-item.active{-webkit-backdrop-filter:blur(12px);color:var(--sidebar-text-active);background:#ffffff1a;border:1px solid #ffffff24;font-weight:600;box-shadow:inset 0 1px #ffffff29,0 2px 8px #00000040}.hero-overlay{pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,#ffffff2b 0%,#0000 44%),linear-gradient(#fff3 0%,#0000 36%),radial-gradient(58% 100% at 90% -18%,#ffffff38 0%,#0000 62%),radial-gradient(48% 68% at -6% 116%,#ffffff1c 0%,#0000 62%);position:absolute;inset:0}@keyframes waveFloat{0%{transform:rotate(-1.1deg)translateY(0)}to{transform:rotate(-1.1deg)translateY(-10px)}}@keyframes waveFloatSoft{0%{transform:rotate(1.7deg)translateY(0)}to{transform:rotate(1.7deg)translateY(-8px)}}@keyframes patternDrift{0%{transform:translate(0)}to{transform:translate(6px,-6px)}}@keyframes orbFloat1{0%{transform:translate(0)scale(1)}to{transform:translate(30px,-40px)scale(1.08)}}@keyframes orbFloat2{0%{transform:translate(0)scale(1)}to{transform:translate(-25px,35px)scale(.94)}}@keyframes orbFloat3{0%{transform:translate(0)scale(1)}to{transform:translate(20px,-30px)scale(1.06)}}@keyframes blobFloat1{0%{border-radius:60% 40% 55% 45%/50% 60% 40% 50%;transform:translate(0)rotate(0)scale(1)}50%{border-radius:50% 50% 45% 55%/55% 45%;transform:translate(20px,-30px)rotate(8deg)scale(1.04)}to{border-radius:65% 35% 60% 40%/45% 65% 35% 55%;transform:translate(-10px,20px)rotate(-5deg)scale(.97)}}@keyframes blobFloat2{0%{border-radius:45% 55% 40% 60%/60% 40% 55% 45%;transform:translate(0)rotate(0)scale(1)}50%{border-radius:55% 45% 50% 50%/45% 55%;transform:translate(-25px,20px)rotate(-6deg)scale(1.06)}to{border-radius:40% 60% 45% 55%/60% 40%;transform:translate(15px,-25px)rotate(4deg)scale(.96)}}@keyframes meshDrift{0%{transform:translate(0%)scale(1)rotate(0)}25%{transform:translate(-6%,5%)scale(1.12)rotate(4deg)}50%{transform:translate(4%,-6%)scale(1.05)rotate(-3deg)}75%{transform:translate(6%,6%)scale(1.15)rotate(3deg)}to{transform:translate(-4%,-4%)scale(1.08)rotate(-4deg)}}@keyframes blobFloat3{0%{border-radius:55% 45% 60% 40%/45% 55%;transform:translate(0)rotate(0)scale(1)}50%{border-radius:45% 55% 50% 50%/55% 45%;transform:translate(30px,-20px)rotate(5deg)scale(1.05)}to{border-radius:60% 40% 55% 45%/50% 60% 40%;transform:translate(-20px,15px)rotate(-8deg)scale(.98)}}.lesson-tools-stack{gap:18px;margin-bottom:22px;display:grid}.lesson-tool-card{box-sizing:border-box;text-align:left;background:#fff;border:.5px solid #e3e9f2;border-radius:16px;padding:24px 26px;box-shadow:0 10px 26px #0f172a09}.lesson-card-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.lesson-tool-eyebrow{color:#94a3b8;letter-spacing:0;margin-bottom:3px;font-size:12px;font-weight:800}.lesson-card-header h3{color:#0f172a;margin:0;font-size:22px;font-weight:850;line-height:1.2}.timer-status{color:#64748b;white-space:nowrap;background:#f1f5f9;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800}.timer-status.is-running{color:#16a34a;background:#ecfdf5}.rating-btn,.timer-primary-btn,.timer-secondary-btn,.record-save-btn,.count-stepper button,.timer-open-btn,.timer-time-stepper button{appearance:none;font:inherit}.timer-open-btn{color:#1e5ce6;cursor:pointer;white-space:nowrap;background:#eef5ff;border:1px solid #dbe3ee;border-radius:999px;min-height:44px;padding:0 18px;font-size:13px;font-weight:850}.timer-help-text{color:#64748b;margin:-4px 0 0;font-size:14px;font-weight:650}.timer-setup-row{gap:8px;margin-bottom:16px;display:grid}.timer-setup-row label{color:#64748b;font-size:13px;font-weight:800}.timer-duration-controls{flex-wrap:wrap;gap:10px;display:flex}.timer-time-stepper{background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;grid-template-columns:52px minmax(72px,96px) 38px 52px;align-items:center;width:max-content;max-width:100%;display:grid;overflow:hidden}.timer-time-stepper button{color:#1e5ce6;cursor:pointer;background:#eef5ff;border:none;min-height:50px;font-size:22px;font-weight:900}.timer-time-stepper input{color:#0f172a;text-align:center;background:#fff;border:none;outline:none;min-width:0;font-size:18px;font-weight:850}.timer-time-stepper span{color:#64748b;text-align:center;font-size:13px;font-weight:850}.timer-display{color:#0f172a;text-align:center;font-variant-numeric:tabular-nums;margin:8px 0 14px;font-size:54px;font-weight:900;line-height:1}.timer-progress{background:#e2e8f0;border-radius:999px;height:10px;margin-bottom:18px;overflow:hidden}.timer-progress span{border-radius:inherit;background:linear-gradient(90deg,#1e5ce6,#4e9bff);height:100%;transition:width .25s;display:block}.timer-actions{grid-template-columns:1.2fr 1fr 1fr;gap:10px;display:grid}.timer-primary-btn,.timer-secondary-btn,.record-save-btn{cursor:pointer;border:1px solid #dbe3ee;border-radius:12px;min-height:48px;font-size:15px;font-weight:850}.timer-primary-btn,.record-save-btn{color:#fff;background:#1e5ce6;border:none}.timer-secondary-btn{color:#334155;background:#f8fafc}.timer-primary-btn:disabled,.timer-secondary-btn:disabled,.record-save-btn:disabled{cursor:default;opacity:.48}.record-row{gap:8px;margin-bottom:16px;display:grid}.record-row label{color:#64748b;font-size:13px;font-weight:800}.count-stepper{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;grid-template-columns:56px minmax(82px,1fr) 56px;max-width:240px;display:grid;overflow:hidden}.count-stepper button{color:#1e5ce6;cursor:pointer;background:#eef5ff;border:none;min-height:52px;font-size:24px;font-weight:900}.count-stepper input{color:#0f172a;text-align:center;background:#fff;border:none;outline:none;min-width:0;font-size:20px;font-weight:850}.rating-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.rating-btn{color:#334155;cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;min-height:48px;font-size:14px;font-weight:850}.rating-btn.is-active{color:#15803d;background:#ecfdf5;border-color:#86efac}.memo-input{color:#0f172a;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;outline:none;min-height:48px;padding:0 14px;font-size:15px;font-weight:650}.record-save-btn{width:100%;margin-top:2px}.record-message{color:#15803d;text-align:center;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:13px;font-weight:800}.record-message.is-error{color:#dc2626;background:#fef2f2;border-color:#fecaca}@media (width<=720px){.lesson-tools-stack{gap:14px}.lesson-tool-card{padding:20px 18px}.rating-options{grid-template-columns:1fr}.timer-display{font-size:46px}.timer-actions{grid-template-columns:1fr}.timer-primary-btn,.timer-secondary-btn,.record-save-btn,.rating-btn{min-height:54px}}.week-lesson-card{transition:transform .18s,box-shadow .18s,border-color .18s,background-color .18s;transform:translateY(0)scale(1);box-shadow:0 6px 16px #0f172a09}.week-lesson-card:hover{transform:translateY(-2px)scale(1.01);box-shadow:0 14px 34px #0f172a17}.week-lesson-card:active{transform:translateY(0)scale(.995);box-shadow:0 7px 18px #0f172a14}@media (hover:none){.week-lesson-card:hover{transform:none;box-shadow:0 6px 16px #0f172a09}}
