/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.table{display:table}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;--ink:#3e3444;--muted:#6b5e6d;--line:#ddd0da;--soft-line:#eee5eb;--surface:#fffdf8;--canvas:#fff9ef;--navy:#76506f;--blue:#4b5e85;--blue-soft:#f2ebf8;--red:#9a3e54;--red-soft:#fff0f3;--green:#537565;--lavender:#b89dcd;--lavender-soft:#f2ebf8;--lavender-ink:#5e496a;--coral:#e88a73;--coral-soft:#fff0ea;--coral-ink:#914e45;--butter:#f0c85b;--butter-soft:#fff4c8;--butter-ink:#64501f;--focus:#745084;--shadow:0 14px 34px #4e374a1c}*{box-sizing:border-box}html{background:var(--canvas)}body{background:radial-gradient(circle at 8% 4%, #b89dcd33, transparent 30rem), radial-gradient(circle at 96% 10%, #e88a7324, transparent 26rem), radial-gradient(circle at 52% 100%, #f0c85b1c, transparent 31rem), linear-gradient(#76506f08 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, #76506f08 1px, transparent 1px) 0 0 / 24px 24px, var(--canvas);color:var(--ink);margin:0;font-family:Pretendard,Noto Sans KR,Malgun Gothic,system-ui,sans-serif;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .12s,background-color .16s,border-color .16s,box-shadow .16s}button:disabled{cursor:not-allowed;opacity:.45}button:not(:disabled):active{transform:translateY(2px)}:is(button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.app-shell{width:min(1480px,100% - 48px);margin:0 auto;padding-bottom:44px}.topbar{border-bottom:1px solid #84b2aa73;justify-content:space-between;align-items:center;min-height:92px;display:flex}.brand-lockup{align-items:center;gap:14px;display:flex}.brand-mark{color:#174a4c;background:linear-gradient(145deg,#8be1cb,#8cceee 62%,#ffaa9e);border-radius:16px;place-items:center;width:48px;height:48px;font-family:Georgia,serif;font-size:25px;font-weight:900;display:grid;position:relative;transform:rotate(-3deg);box-shadow:0 9px 20px #3a998833}.brand-mark:before{content:"✦";color:#e86f70;text-shadow:0 2px #fff;font-family:Georgia,serif;font-size:16px;position:absolute;top:-8px;right:-7px;transform:rotate(12deg)}.brand-mark:after{content:"";background:#ffd166;border:3px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;bottom:5px;left:-5px;box-shadow:0 2px 5px #6f5b2e29}.eyebrow,.section-kicker{color:var(--blue);letter-spacing:.08em;margin:0;font-size:12px;font-weight:800}.brand-lockup h1{letter-spacing:-.04em;margin:4px 0 0;font-size:21px;position:relative}.brand-lockup h1:after{content:"";opacity:.72;background:linear-gradient(90deg,#75d4bd,#7dc7ea,#ff9f91);border-radius:999px;height:3px;position:absolute;bottom:-5px;left:0;right:38%;transform:rotate(-1deg)}.header-actions{align-items:center;gap:10px;display:flex}.grade-picker,.secondary-button{border:1px solid var(--line);background:#fffc;border-radius:10px;height:42px}.grade-picker{color:var(--muted);align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.grade-picker select{color:var(--ink);background:0 0;border:0;outline:0;font-weight:800}.secondary-button{color:var(--navy);padding:0 15px;font-weight:750}.month-heading{justify-content:space-between;align-items:end;padding:40px 2px 24px;display:flex;position:relative}.month-heading>div:first-child{min-width:0}.month-heading h2{z-index:0;color:#684b62;letter-spacing:-.07em;white-space:nowrap;text-shadow:2px 3px #b89dcd47;transform-origin:0;margin:5px 0 9px;font-family:ui-rounded,Arial Rounded MT Bold,NanumSquareRound,Malgun Gothic,sans-serif;font-size:clamp(40px,4.6vw,56px);font-weight:900;line-height:1.05;display:inline-block;position:relative;transform:rotate(-1deg)}.month-heading h2:after{content:"";z-index:-1;background:#ffe29bb8;border-radius:999px 70% 80% 999px;height:.24em;position:absolute;bottom:.03em;left:-.05em;right:-.12em;transform:rotate(-1deg)}.month-title-row{align-items:center;gap:16px;min-width:0;display:flex}.month-copy{flex:auto;min-width:0}.month-mascot{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;isolation:isolate;aspect-ratio:1402/1122;pointer-events:none;-webkit-user-select:none;user-select:none;background:#fff9ef;border:1px solid #e4d3df;border-radius:24px 31px 22px 28px;flex:none;width:208px;height:auto;margin:-30px 0 -17px;position:relative;overflow:hidden;transform:rotate(1deg);box-shadow:4px 5px #c9b9e847,0 12px 25px #6f48681a;container-type:inline-size}.month-mascot img{object-fit:cover;width:100%;height:100%;animation:.42s cubic-bezier(.2,.86,.25,1.12) both mascot-arrive;display:block}.mascot-sweat{z-index:3;transform-origin:50% 100%;background:linear-gradient(145deg,#d8f4fa 8%,#82bfd3 56%,#6098b5 100%);border:.75px solid #4f8eab;border-radius:68% 36% 64% 42%/70% 43% 60% 34%;width:clamp(3px,3.3cqi,7px);height:clamp(5px,4.8cqi,10px);position:absolute;top:36.5%;left:67.5%;transform:rotate(-18deg);box-shadow:0 1px 2px #35657e38,0 0 0 .5px #fffaf2c7}.mascot-sweat:after{content:"";background:#ffffffe6;border-radius:50%;width:28%;height:25%;position:absolute;top:15%;left:20%;transform:none}.mascot-stack-note{z-index:3;color:#65485f;letter-spacing:-.06em;white-space:nowrap;text-shadow:none;transform-origin:0 100%;background:#fff0a8;border:1px solid #fffffff0;border-radius:8px 12px 10px 6px;align-items:center;gap:2px;padding:clamp(2px,1.7cqi,4px) clamp(4px,3cqi,7px) clamp(2px,1.4cqi,3px);font-family:ui-rounded,Arial Rounded MT Bold,NanumSquareRound,Malgun Gothic,sans-serif;font-size:clamp(8px,5px + 3.3cqi,12px);font-weight:900;line-height:1.1;animation:.58s cubic-bezier(.2,.86,.25,1.12) .16s both mascot-note-heave;display:inline-flex;position:absolute;top:clamp(4px,4.8cqi,10px);left:clamp(4px,4.3cqi,9px);transform:rotate(-6deg);box-shadow:0 2px #e1c25b9e,0 3px 7px #3e34442e}.mascot-stack-note:before{content:"✦";color:#df756d;font-family:Georgia,serif;font-size:.85em}body:has(.save-notice) .month-mascot img{animation:.38s cubic-bezier(.2,.86,.25,1.12) both mascot-nod}.month-mascot figcaption{z-index:1;color:#715d45;letter-spacing:.01em;white-space:nowrap;background:#fff8d9f5;border:1px dashed #d3b76f;border-radius:7px 10px 8px 9px;margin:0;padding:5px 7px 4px;font-size:9px;font-weight:850;position:absolute;bottom:9px;left:10px;transform:rotate(-1.8deg);box-shadow:2px 2px #e5d08b6b}.helper-copy{color:var(--muted);margin:0;font-size:14px}.overtime-motto{color:#7a507094;letter-spacing:-.045em;white-space:normal;text-shadow:1px 1px #ffffffbf;transform-origin:0;pointer-events:none;-webkit-user-select:none;user-select:none;background:#fffefd8f;border:1px dashed #7a50703d;border-radius:7px 10px 8px 6px;max-width:100%;margin:9px 0 0 4px;padding:4px 9px 3px;font-family:ui-rounded,Arial Rounded MT Bold,NanumSquareRound,Malgun Gothic,sans-serif;font-size:clamp(13px,1.35vw,16px);font-weight:900;line-height:1.25;display:inline-block;position:static;transform:rotate(-2deg)}.month-controls{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;padding:4px;display:flex;box-shadow:0 6px 16px #2838550d}.month-controls button{width:40px;height:36px;color:var(--navy);background:0 0;border:0;border-radius:8px;font-weight:800}.month-controls .today-button{background:var(--blue-soft);width:auto;padding:0 13px}.summary-grid{grid-template-columns:1.18fr 1fr 1fr 1.18fr;gap:12px;margin-bottom:16px;display:grid}.summary-card{border:1px solid var(--line);background:#ffffffeb;border-radius:18px;flex-direction:column;min-height:124px;padding:20px 21px;transition:transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 7px 23px #1c2d4b09}.summary-card:before{content:"";background:#beeee2b8;border:1px solid #5aa79726;width:44px;height:14px;position:absolute;top:-4px;left:50%;transform:translate(-50%)rotate(-1deg)}.summary-card.raw-summary:before{background:#c4e7f9c2;transform:translate(-50%)rotate(1deg)}.summary-card.pay-summary:before{background:#ffc8bfa6;transform:translate(-50%)rotate(1.5deg)}.summary-card:after{content:attr(data-icon);color:#257467;background:#ecfaf6;border:1px solid #cde8e1;border-radius:11px 13px 10px 14px;place-items:center;width:31px;height:31px;font-family:Georgia,Malgun Gothic,serif;font-size:16px;font-weight:900;display:grid;position:absolute;top:14px;right:16px;transform:rotate(4deg);box-shadow:2px 3px #8ed3c347}.summary-card.raw-summary:after{color:#316f91;background:#edf8fd;border-color:#cce4f2;transform:rotate(-3deg)}.summary-card.pay-summary:after{color:#a34f43;background:#fff1ed;border-color:#f3d0c8;transform:rotate(-4deg)}.summary-card>span{color:var(--muted);padding-right:42px;font-size:13px;font-weight:700}.summary-card strong{letter-spacing:-.04em;margin:10px 0 4px;font-family:Georgia,Malgun Gothic,serif;font-size:27px}.summary-card small{color:#8a91a1;font-size:12px}.primary-summary{color:var(--ink);background:linear-gradient(145deg,#e1faf3,#eaf7ff);border-color:#bfe8dd}.primary-summary>span,.primary-summary small{color:var(--muted)}.pay-summary{background:#fff6ee;border-color:#ffdccf}.period-goals{background:linear-gradient(#91698909 1px,#0000 1px) 0 0/100% 23px,#fffefbf2;border:1px dashed #d8bfd1;border-radius:17px 22px 18px 21px;margin:16px 0 0;padding:21px 20px 17px;position:relative;overflow:hidden;box-shadow:4px 5px #c9b9e826,0 12px 28px #6f486812}.period-goals:before{content:"";background:repeating-linear-gradient(45deg,#ffffff80 0 5px,#0000 5px 10px),#ffe29bc2;border:1px solid #8b5b7e1f;width:72px;height:17px;position:absolute;top:-4px;left:50%;transform:translate(-50%)rotate(-1deg)}.period-goals-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.period-goals-heading h2{color:#684b62;letter-spacing:-.045em;margin:4px 0 3px;font-family:ui-rounded,Arial Rounded MT Bold,NanumSquareRound,Malgun Gothic,sans-serif;font-size:22px;font-weight:900}.period-goals-heading>div>p:last-child{color:var(--muted);margin:0;font-size:11px}.period-settings-button{color:#674f73;background:#f8f1fc;border:1px solid #cdb7d8;border-radius:10px 13px 11px 14px;flex:none;min-height:44px;padding:0 15px;font-size:12px;font-weight:850;box-shadow:2px 3px #c9b9e847}.period-goal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px;display:grid}.period-goal-card{--goal-color:#76506f;background:#f8f3fc;border:1px solid #ddd0e5;border-radius:13px 17px 14px 16px;flex-direction:column;min-width:0;padding:14px;display:flex}.period-goal-card.quarter-goal{--goal-color:#80643f;background:#fff9df;border-color:#e7d49b}.period-goal-card.half-goal{--goal-color:#914e45;background:#fff2eb;border-color:#edc6b7}.period-goal-top{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.period-goal-label{flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.period-goal-label>span{color:#fff;background:var(--goal-color);border-radius:8px 11px 9px 10px;place-items:center;min-width:34px;height:25px;padding:0 7px;font-size:10px;font-weight:900;display:grid;transform:rotate(-2deg)}.period-goal-label>div{flex-direction:column;gap:1px;min-width:0;display:flex}.period-goal-label b{font-size:12px}.period-goal-label small{color:var(--muted);font-size:11px;line-height:1.4}.period-goal-percent{min-width:51px;min-height:34px;color:var(--goal-color);font-variant-numeric:tabular-nums;background:#ffffffb8;border:1px solid #76506f33;border-radius:10px 13px 9px 12px;flex-direction:column;flex:none;justify-content:center;align-items:center;padding:4px 7px 3px;line-height:1;display:flex;transform:rotate(2deg);box-shadow:1px 2px #76506f1a}.period-goal-percent b{letter-spacing:-.04em;font-size:14px;font-weight:950}.period-goal-percent small{margin-top:2px;font-size:8px;font-weight:850}.period-goal-card.goal-achieved .period-goal-percent{color:#fff;background:var(--goal-color)}.period-goal-card>strong{min-height:42px;color:var(--ink);letter-spacing:-.04em;overflow-wrap:anywhere;margin:12px 0 8px;font-size:17px;line-height:1.25}.period-goal-card.goal-achieved>strong{color:var(--goal-color)}.period-goal-card progress{-webkit-appearance:none;appearance:none;background:#ffffffbd;border:0;border-radius:999px;width:100%;height:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #76506f1a}.period-goal-card progress::-webkit-progress-bar{background:#ffffffbd;border-radius:999px}.period-goal-card progress::-webkit-progress-value{background:var(--goal-color);border-radius:999px;box-shadow:inset 0 -2px #ffffff29}.period-goal-card progress::-moz-progress-bar{background:var(--goal-color);border-radius:999px}.period-goal-unset{background:#7a50701a;border-radius:999px;width:100%;height:8px}.period-goal-card>small{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:7px;font-size:11px}.period-goals-note{color:var(--muted);margin:11px 2px 0;font-size:11px}.workspace-grid{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:16px;display:grid}.calendar-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff5;border-radius:19px;position:relative;overflow:hidden}.calendar-card:before{content:"";z-index:3;opacity:.92;background:repeating-linear-gradient(90deg,#7bd6bd 0 40px,#80c8eb 40px 80px,#ffab9e 80px 120px,#ffd47e 120px 160px);height:6px;position:absolute;inset:0 0 auto}.calendar-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:0 20px;display:flex}.legend{color:var(--muted);align-items:center;gap:18px;font-size:12px;display:flex}.legend span{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.weekday-dot{background:#aeb5c3}.rest-dot{background:var(--red)}.export-actions{gap:7px;display:flex}.export-actions button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:8px;height:34px;padding:0 11px;font-size:12px;font-weight:700}.export-actions .danger-action{color:#994a61;background:#fff5f7;border-color:#e7bec8}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row{border-bottom:1px solid var(--line);background:#f9fafc}.weekday-row div{text-align:center;color:#737b8d;padding:11px 4px;font-size:12px;font-weight:800}.weekday-row .sunday{color:var(--red)}.weekday-row .saturday{color:var(--blue)}.day-cell{text-align:left;border:0;border-right:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line);min-height:114px;color:var(--ink);background:#fff;flex-direction:column;padding:12px 11px;transition:transform .12s,background .16s,box-shadow .16s;display:flex;position:relative}button.day-cell:not(:disabled):active{transform:translateY(1px);box-shadow:inset 0 0 0 2px #78c9b7}.day-cell:focus-visible{z-index:2;outline-offset:-3px}.day-cell:after{content:"✦";z-index:2;color:#ed8077;opacity:0;pointer-events:none;font-family:Georgia,serif;font-size:20px;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)scale(.35)rotate(-18deg)}.day-cell:active:after{opacity:.9;transition:opacity 80ms,transform .12s;transform:translate(-50%,-58%)scale(1.08)rotate(6deg)}.day-cell:nth-child(7n){border-right:0}.day-cell:hover{z-index:1;background:#f3fcfa;box-shadow:inset 0 0 0 1px #85cebe}.empty-day{background:#fbfbfc}.empty-day:hover{box-shadow:none;background:#fbfbfc}.day-number{font-family:Georgia,serif;font-size:16px;font-weight:800;line-height:25px}.today-number{text-align:center;color:#fff;background:var(--navy);border-radius:50%;width:25px;height:25px;margin:-2px 0 0 -4px}.day-type{text-overflow:ellipsis;white-space:nowrap;color:#9399a7;max-width:calc(100% - 45px);font-size:10px;font-weight:800;position:absolute;top:13px;right:10px;overflow:hidden}.rest-type{color:var(--red)}.add-hint{color:#a7adba;opacity:0;margin-top:auto;font-size:11px}.day-cell:hover .add-hint{opacity:1}.entry-chip{background:#eaf7fd;border-radius:8px;flex-direction:column;gap:2px;margin-top:auto;padding:6px 28px 6px 7px;display:flex;position:relative;transform:rotate(-.45deg);box-shadow:inset 0 0 0 1px #2375a61a,1px 2px #6eaecc1f}.entry-chip:before{content:"✓";color:#fff;background:#65bca7;border-radius:50%;place-items:center;width:16px;height:16px;font-size:9px;font-weight:900;display:grid;position:absolute;top:7px;right:6px;transform:rotate(8deg);box-shadow:0 2px 5px #3278692e}.entry-chip b{color:var(--navy);letter-spacing:-.03em;font-size:14px}.entry-time-compact{display:none}.entry-chip small{color:#858c9c;font-size:10px}.weekend-cell .entry-chip{background:#fff2f1;box-shadow:inset 0 0 0 1px #b648551a}.side-panel{flex-direction:column;gap:13px;display:flex}.summary-panel .summary-card{min-height:142px}.rule-card,.recent-card{padding:22px}.rule-card h3,.recent-card h3{letter-spacing:-.04em;margin:6px 0 19px;font-size:18px}.rule-line{border-top:1px solid var(--soft-line);align-items:center;gap:12px;padding:12px 0;display:flex}.rule-icon{border-radius:10px;flex:none;place-items:center;width:35px;height:35px;font-size:12px;font-weight:900;display:grid}.rest-icon{color:var(--red);background:var(--red-soft)}.rule-line div{flex-direction:column;gap:3px;display:flex}.rule-line b{font-size:13px}.rule-line small{color:var(--muted);font-size:11px}.rule-note{color:#6e7585;background:#f5f6f8;border-radius:9px;margin:12px 0 0;padding:11px 12px;font-size:11px;line-height:1.55}.panel-title-row{justify-content:space-between;align-items:start;display:flex}.count-badge{min-width:36px;height:25px;color:var(--blue);background:var(--blue-soft);border-radius:20px;place-items:center;font-size:11px;font-weight:800;display:grid}.recent-list{flex-direction:column;display:flex}.recent-list button{border:0;border-top:1px solid var(--soft-line);text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:12px 1px;display:flex}.recent-list button:hover{color:var(--blue)}.record-date,.record-time{flex-direction:column;gap:2px;display:flex}.record-date b{font-family:Georgia,serif;font-size:18px}.record-date small,.record-time small{color:#969cab;font-size:10px}.record-time{text-align:right}.record-time b{font-size:13px}.empty-state{min-height:150px;color:var(--muted);text-align:center;border:1px dashed #d4d9e3;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state>span{width:38px;height:38px;color:var(--blue);background:var(--blue-soft);border:1px dashed #8fc8df;border-radius:12px 14px 11px 15px;place-items:center;font-size:19px;display:grid;position:relative;transform:rotate(-3deg);box-shadow:2px 3px #d9eef8}.empty-state>span:before{content:"✦";color:#ee897e;font-family:Georgia,serif;font-size:13px;position:absolute;top:-11px;right:-12px}.empty-state>span:after{content:"";background:#ffd26f;border-radius:50%;width:7px;height:7px;position:absolute;bottom:-6px;left:-9px}.empty-state p{margin:10px 0 3px;font-size:12px;font-weight:800}.empty-state small{font-size:10px}.danger-link{color:#aa6262;text-underline-offset:3px;background:0 0;border:0;align-self:center;font-size:11px;text-decoration:underline}footer{color:#7f8797;padding:23px 2px 0;font-size:11px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#304b4e47;place-items:center;padding:20px;animation:.14s ease-out both backdrop-in;display:grid;position:fixed;inset:0}.modal{transform-origin:bottom;background:#fff;border-radius:19px;width:min(570px,100%);max-height:calc(100dvh - 36px);padding:26px;animation:.23s cubic-bezier(.2,.86,.25,1.12) both card-pop;overflow:auto;box-shadow:0 26px 70px #27524f33}.modal-heading{justify-content:space-between;align-items:start;display:flex}.modal-heading h2{letter-spacing:-.04em;margin:5px 0;font-family:Georgia,Malgun Gothic,serif;font-size:30px}.modal-heading p:not(.section-kicker){color:var(--muted);margin:0;font-size:12px}.close-button{border:1px solid var(--line);color:#687085;background:#fff;border-radius:10px;width:36px;height:36px;font-size:24px;line-height:1}.mode-switch{background:#edf7f4;border-radius:11px;grid-template-columns:1fr 1fr;margin:25px 0 20px;padding:4px;display:grid}.mode-switch button{color:#737b8d;white-space:normal;background:0 0;border:0;border-radius:8px;height:auto;min-height:44px;padding:6px;font-size:12px;font-weight:800;line-height:1.3}.recent-template-button{color:#315f59;text-align:left;background:#f4fcf9;border:1px dashed #a8d8ce;border-radius:12px;align-items:center;gap:10px;width:100%;min-height:50px;margin:-8px 0 18px;padding:8px 11px;display:flex}.recent-template-icon{color:#226b5f;background:#d9f7ee;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;font-size:16px;font-weight:900;display:grid}.recent-template-button>span:last-child{flex-direction:column;gap:3px;min-width:0;display:flex}.recent-template-button b{font-size:11px}.recent-template-button small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.time-input-grid{grid-template-columns:1fr auto 1fr;align-items:end;gap:11px;display:grid}.time-input-grid label,.duration-inputs label,.note-field{color:#61697a;flex-direction:column;gap:8px;font-size:12px;font-weight:750;display:flex}.time-input-grid input,.duration-inputs input,.note-field input,.rate-list input,.target-list input{height:47px;color:var(--ink);background:#fff;border:1px solid #ccd2dd;border-radius:10px;outline:none;padding:0 13px}.time-separator{color:#9da3b0;padding-bottom:14px}.direct-time-hint{color:#7c8494;margin:8px 0 0;font-size:10px}.duration-entry{flex-direction:column;display:flex}.duration-method-picker{border:0;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;display:grid}.duration-method-picker legend{color:#61697a;grid-column:1/-1;margin-bottom:8px;padding:0;font-size:12px;font-weight:800}.duration-method-picker label{cursor:pointer;position:relative}.duration-method-picker input{opacity:0;pointer-events:none;position:absolute}.duration-method-picker label>span{background:#fff;border:1px solid #d6dce6;border-radius:11px;flex-direction:column;justify-content:center;gap:3px;min-height:52px;padding:9px 11px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex}.duration-method-picker label b{color:#596174;font-size:11px}.duration-method-picker label small{color:#858d9e;font-size:10px}.duration-method-picker input:checked+span b{color:var(--navy)}.duration-method-picker input:focus-visible+span{outline-offset:2px;outline:3px solid #3b8a7d}.duration-method-note{color:#7c8494;margin:8px 2px 12px;font-size:10px;line-height:1.5}.duration-section{border:1px solid var(--line);border-radius:13px;padding:15px}.duration-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.duration-section-heading>div{flex-direction:column;gap:3px;display:flex}.duration-section-heading b{color:var(--ink);font-size:13px}.duration-section-heading small{color:var(--muted);font-size:10px}.duration-section-heading>span{border-radius:999px;flex:none;padding:4px 8px;font-size:9px;font-weight:850}.quick-duration-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px;display:grid}.quick-duration-grid button{color:#276f64;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #b7e4d6;border-radius:10px;min-height:44px;font-size:11px;font-weight:850;position:relative}.quick-duration-grid button:active:not(:disabled){animation:none;transform:translateY(2px)scale(.92)rotate(-1deg)}.quick-duration-grid button.quick-save-ready{animation:.5s cubic-bezier(.22,.86,.28,1.12) both quick-bounce}.quick-duration-grid button.quick-save-ready:after{content:"✦";z-index:2;color:#ed7f75;pointer-events:none;text-shadow:0 2px #fff;font-family:Georgia,serif;font-size:17px;animation:.52s ease-out both sparkle-pop;position:absolute;top:-10px;right:3px}.duration-inputs{grid-template-columns:1fr 1fr;gap:12px;margin-top:13px;display:grid}.duration-inputs>label,.duration-inputs input{width:100%;min-width:0}.duration-current-value{color:var(--muted);background:#eef8f6;border-radius:10px;justify-content:space-between;align-items:center;margin-top:10px;padding:11px 13px;font-size:10px;display:flex}.duration-current-value b{color:var(--navy);font-size:13px}.time-window-note{color:#416b67;background:#f2faf8;border:1px solid #cfe8e3;border-radius:10px;margin:14px 0 0;padding:11px 13px;font-size:11px;line-height:1.55}.holiday-toggle{border:1px solid var(--line);cursor:pointer;border-radius:11px;align-items:center;gap:11px;margin-top:18px;padding:14px;display:flex}.holiday-toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-visual{background:#c9ced8;border-radius:20px;flex:none;width:38px;height:22px;transition:background .16s;position:relative}.toggle-visual:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #00000029}.holiday-toggle input:checked+.toggle-visual{background:var(--red)}.holiday-toggle input:checked+.toggle-visual:after{transform:translate(16px)}.holiday-toggle>span:last-child{flex-direction:column;gap:3px;display:flex}.holiday-toggle b{font-size:12px}.holiday-toggle small{color:var(--muted);font-size:10px}.holiday-auto-notice{background:#fff8f8;border:1px solid #f1d0d0;border-radius:11px;align-items:center;gap:11px;margin-top:18px;padding:14px;display:flex}.holiday-auto-notice>span{width:35px;height:35px;color:var(--red);background:var(--red-soft);border-radius:10px;flex:none;place-items:center;font-size:12px;font-weight:900;display:grid}.holiday-auto-notice div{flex-direction:column;gap:3px;display:flex}.holiday-auto-notice b{font-size:12px}.holiday-auto-notice small{color:var(--muted);font-size:10px}.note-field{margin-top:18px}.note-field>span small{color:#a0a6b2;font-weight:500}.calculation-preview{background:#f2faf8;border-radius:13px;grid-template-columns:1fr auto 1fr auto 1.15fr;align-items:center;gap:8px;margin-top:20px;padding:17px;display:grid}.calculation-preview div{flex-direction:column;gap:4px;display:flex}.calculation-preview span{color:#7c8494;font-size:10px}.calculation-preview b{font-size:13px}.calculation-symbol{font-size:16px!important}.recognized-result{border-left:1px solid #d6deea;padding-left:12px}.recognized-result b{color:var(--navy);font-size:16px}.modal-actions{border-top:1px solid var(--soft-line);gap:8px;margin-top:24px;padding-top:18px;display:flex}.modal-actions button{border-radius:10px;height:43px;padding:0 16px;font-size:12px;font-weight:800}.spacer{flex:1}.delete-button{background:var(--red-soft);color:var(--red);border:0}.cancel-button{border:1px solid var(--line);color:var(--muted);background:#fff}.save-button{border:1px solid var(--navy);color:#fff;background:linear-gradient(145deg,#2b887b,#24786f);box-shadow:0 5px 12px #24786f2e}.save-notice{left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:70;color:#225f57;background:#effcf8f7;border:1px solid #a9dfd2;border-radius:999px;align-items:center;gap:8px;max-width:calc(100% - 24px);min-height:44px;padding:10px 16px;font-size:12px;font-weight:800;animation:.34s cubic-bezier(.2,.9,.25,1.15) both toast-pop;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 32px #3070662e}.save-notice:before,.save-notice:after{color:#ee7f75;pointer-events:none;text-shadow:0 2px #fff;font-family:Georgia,serif;font-size:18px;animation:.6s ease-out both toast-spark;position:absolute;top:-20px}.save-notice:before{content:"✦";--spark-rotate:-18deg;left:16%}.save-notice:after{content:"✦";color:#e8af35;--spark-rotate:20deg;animation-delay:60ms;right:13%}.save-notice>span{color:#fff;background:#42aa91;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;animation:.4s ease-out both check-pop;display:grid}.settings-modal,.target-settings-modal{width:min(500px,100%)}.target-list{border-top:1px solid var(--line);margin-top:23px}.target-list>label{border-bottom:1px solid var(--soft-line);justify-content:space-between;align-items:center;gap:14px;min-height:72px;display:flex}.target-list>label>span{flex-direction:column;gap:3px;min-width:0;display:flex}.target-list>label b{color:var(--ink);font-size:14px}.target-list>label small{color:var(--muted);font-size:11px;line-height:1.4}.target-list label>div{color:var(--muted);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.target-list input{text-align:right;border-color:#9b8c9a;width:105px;height:40px}.target-default-button{color:#65517a;background:#f8f3ff;border:1px dashed #c9b9e8;border-radius:9px 12px 10px 11px;min-height:44px;margin-top:14px;padding:0 13px;font-size:11px;font-weight:800}.target-settings-note{color:var(--muted);margin:13px 0 0;font-size:11px;line-height:1.55}.rate-list{border-top:1px solid var(--line);margin-top:23px}.rate-list>label{border-bottom:1px solid var(--soft-line);justify-content:space-between;align-items:center;min-height:66px;display:flex}.rate-list>label>span{color:var(--muted);font-size:12px}.rate-list>label b{color:var(--ink);font-size:14px}.rate-list label>div{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.rate-list input{text-align:right;width:135px;height:40px}.settings-source{color:#41536b;background:#f7faff;border:1px solid #d9e4f0;border-radius:10px;margin-top:16px;padding:13px 14px;font-size:11px;line-height:1.65}.settings-source p{margin:0}.settings-source p+p{margin-top:4px}.settings-source a{color:#225b98;text-underline-offset:2px;font-weight:750;text-decoration:underline}.settings-note{color:var(--muted);margin:14px 0 0;font-size:11px}.topbar{border-bottom:2px dashed #d8bfd1}.brand-mark{color:#5e496a;background:radial-gradient(circle at 25% 24%,#ffffffe0 0 4px,#0000 5px),linear-gradient(145deg,#f5edf9,#dfd1ec 62%,#ffe3d5);border:1px solid #c8b3d5;border-radius:18px 14px 19px 15px;box-shadow:4px 5px #ddcfea,0 11px 24px #6f48681f}.brand-mark:before{content:"✦";color:#aa5279;text-shadow:0 2px #fffefd}.brand-mark:after{background:#ffe29b;border-color:#fffefd;width:10px;height:10px;bottom:4px;left:-7px;box-shadow:0 2px 5px #6f486826}.eyebrow,.section-kicker{color:var(--navy)}.brand-lockup h1:after{background:var(--coral);opacity:.38;height:7px;bottom:-4px;right:30%;transform:rotate(-1.2deg)}.grade-picker,.secondary-button{background:#fffefdd6;border-color:#dfcbd9;box-shadow:2px 3px #c9b9e833}.month-controls{background:#fffefdeb;border-color:#dfcbd9;box-shadow:3px 4px #f3b6d033,0 8px 19px #6f48680f}.month-controls .today-button{background:#f2eaff}.summary-card{border-radius:14px 19px 15px 20px;box-shadow:4px 5px #6f48680f,0 10px 26px #6f486812}.summary-card.primary-summary{background:linear-gradient(150deg,#f8f2fc,#f0e6f7);border-color:#cfbadb;transform:rotate(-.35deg)}.summary-card.raw-summary{background:linear-gradient(150deg,#fffdf8,#faeedc);border-color:#e3d4c1;transform:rotate(.3deg)}.summary-card.pay-summary{background:linear-gradient(150deg, #fff6f1, var(--coral-soft));border-color:#e9bba9;transform:rotate(.35deg)}.summary-card:before{background:repeating-linear-gradient(45deg,#ffffff8c 0 4px,#0000 4px 8px),#f3b6d0c7;border-color:#99537b24;width:48px;height:16px;top:-3px}.summary-card.raw-summary:before{background:radial-gradient(circle,#ffffffb8 0 1.5px,#0000 2px) 0 0/8px 8px,#c9b9e8cc}.summary-card.pay-summary:before{background:repeating-linear-gradient(-45deg,#ffffff7a 0 3px,#0000 3px 8px),#ffc9acd1}.summary-card:after{color:#8a4c70;background:#fff9fc;border-color:#d9afc8;border-radius:50% 46% 52% 44%;box-shadow:2px 3px #f3b6d08c}.summary-card.raw-summary:after{color:#675585;background:#faf7ff;border-color:#c9b9e8;box-shadow:2px 3px #c9b9e875}.summary-card.pay-summary:after{color:#945541;background:#fffaf7;border-color:#edbda4;box-shadow:2px 3px #ffc9ac8a}.summary-card small{color:var(--muted)}.primary-summary strong{color:var(--lavender-ink)}.pay-summary strong{color:var(--coral-ink)}.calendar-card{background:#fffefdf7;border-color:#e3d1df}.calendar-card:before{background:radial-gradient(circle at 15px 6px, var(--surface) 0 3px, var(--lavender) 3.5px 4.5px, transparent 5px) 0 0 / 30px 14px repeat-x, linear-gradient(90deg, var(--lavender), var(--coral) 52%, var(--butter));opacity:1;height:14px}.calendar-toolbar{background:linear-gradient(90deg,#fff9eff0,#f2ebf8d1);border-bottom:1px dashed #dfc2d4;padding-top:8px}.export-actions button{color:#725b70;background:#fffafd;border-color:#d7bfd1;border-radius:8px 11px 9px 12px;box-shadow:2px 2px #c9b9e838}.weekday-row{background:linear-gradient(90deg, #fff9ef, var(--lavender-soft))}.weekday-row div{color:#716376}button.day-cell:not(:disabled):active{box-shadow:inset 0 0 0 2px #b97499}.day-cell:after{content:"✦";color:#a25f93}.day-cell{background:var(--surface)}.day-cell:hover{background:var(--lavender-soft);box-shadow:inset 0 0 0 1px #b79bc8}.empty-day,.empty-day:hover{background:#fdfaf5}.weekend-cell{background:var(--coral-soft)}.entry-chip{color:#604b72;background:var(--lavender-soft);border:1px dashed #bca6cb;box-shadow:2px 2px #c9b9e840}.entry-chip:before{content:"✓";color:#7b3f5e;background:#f4bed2;box-shadow:0 2px 5px #974d7026}.entry-chip b{color:var(--lavender-ink)}.entry-chip small{color:var(--muted)}.weekend-cell .entry-chip{background:#fff0f4;border-color:#edbfca;box-shadow:2px 2px #f3b6d038}.weekend-cell .entry-chip b{color:#8e3e59}.weekend-cell .entry-chip:before{background:#f3b6d0}.rule-card,.recent-card{border-radius:16px 20px 15px 19px;position:relative;overflow:hidden}.rule-card{background:linear-gradient(#a682580b 1px,#0000 1px) 0 50px/100% 24px,#fff9e8;border-color:#eadcae;transform:rotate(-.18deg)}.recent-card{background:linear-gradient(#a65e7f0a 1px,#0000 1px) 0 50px/100% 24px,#fff4f7;border-color:#edcfde;transform:rotate(.18deg)}.rule-card:before,.recent-card:before{content:"";background:repeating-linear-gradient(45deg,#ffffff80 0 4px,#0000 4px 8px),#ffe29bb8;border:1px solid #9664821f;width:48px;height:15px;position:absolute;top:-4px;left:24px;transform:rotate(-2deg)}.recent-card:before{background:radial-gradient(circle,#ffffffb8 0 1.5px,#0000 2px) 0 0/8px 8px,#f3b6d0b8;left:auto;right:26px;transform:rotate(2deg)}.rule-card:after,.recent-card:after{content:"✎";color:#bb5b8538;pointer-events:none;font-family:Georgia,serif;font-size:29px;position:absolute;bottom:7px;right:12px;transform:rotate(10deg)}.recent-card:after{content:"✿";color:#8266a633}.weekday-icon{color:#6b5a86;background:#f0eaff}.rule-note{color:#6e5c62;background:#fff6cfb8;border:1px dashed #e3c989}.count-badge{color:#784f72;background:#f2e8ff}.record-date small,.record-time small{color:var(--muted)}.empty-state{color:var(--muted);background:#ffffff59;border-color:#d7bfdb}.empty-state>span{color:#765786;background:#f2ebff;border-color:#b79dce;box-shadow:3px 3px #e7dcf4}.empty-state>span:before{content:"✦";color:#b95a83}.empty-state>span:after{background:#ffe29b}footer{color:var(--muted)}.modal-backdrop{background:#4c374f47}.modal{background:linear-gradient(#946f8f07 1px,#0000 1px) 0 0/100% 24px,#fffdfb;border:1px solid #e3ccdc;border-radius:20px 25px 19px 23px;position:relative;box-shadow:0 28px 74px #6f486838}.modal:before{content:"";z-index:2;background:repeating-linear-gradient(45deg,#ffffff73 0 5px,#0000 5px 10px),#c9b9e8c7;border:1px solid #7851891f;width:74px;height:18px;position:absolute;top:2px;left:50%;transform:translate(-50%)rotate(-1.5deg)}.close-button{color:#765f73;background:#fffafd;border-color:#dcc9d7}.mode-switch{background:#f4eef9}.mode-switch .active{color:#704c6c;background:#fffafd;box-shadow:2px 3px #c9b9e83d}.recent-template-button{color:#744e63;background:#fff3f5;border-color:#dda9bf;box-shadow:2px 3px #ffc9ac33}.recent-template-button:hover{background:#ffedf3;border-color:#b76a8c}.recent-template-icon{color:#8d4c6c;background:#f6ddea}.time-input-grid label,.duration-inputs label,.note-field,.duration-method-picker legend{color:#65596a}.time-input-grid input,.duration-inputs input,.note-field input,.rate-list input,.target-list input{border-color:#9b8c9a}.time-input-grid input:focus,.duration-inputs input:focus,.note-field input:focus,.rate-list input:focus,.target-list input:focus{border-color:var(--focus);box-shadow:0 0 0 3px #74508433}.duration-method-picker label>span{background:#fffefd;border-color:#d9cbd7}.duration-method-picker input:checked+span{background:#fff2f7;border-color:#a35f87;box-shadow:0 0 0 2px #a35f8721}.duration-method-picker input:focus-visible+span{outline-color:var(--focus)}.duration-method-picker label:first-of-type input:checked+span{background:#f7ddeb;border-color:#a35f87;box-shadow:0 0 0 2px #a35f8724}.duration-method-picker label:first-of-type input:checked+span b{color:#6f3f5c}.duration-method-picker label:last-of-type input:checked+span{background:#ebe8ff;border-color:#6a7fa6;box-shadow:0 0 0 2px #6a7fa624}.duration-method-picker label:last-of-type input:checked+span b{color:#58547e}.duration-method-note{color:var(--muted)}.quick-duration-section{background:linear-gradient(#ad5b7c0a 1px,#0000 1px) 0 0/100% 20px,#fff4f8;border-color:#e5c8df}.quick-duration-section .duration-section-heading>span{color:#7d4d6b;background:#f6ddeb}.quick-duration-grid button{color:#70455f;background:#fff3f8;border-color:#dfc1d6;box-shadow:0 3px #ce93b22e}.quick-duration-grid button:nth-child(2){color:#625278;background:#f5f0ff;border-color:#cfc3e5}.quick-duration-grid button:nth-child(3){color:#805443;background:#fff1e8;border-color:#edc6b1}.quick-duration-grid button:nth-child(4){color:#705d36;background:#fff8d9;border-color:#e4d184}.quick-duration-grid button:hover{background:#ffedf4;border-color:#b86d94}.quick-duration-grid button.active{color:#5f3854;background:#f3d4e5;border-color:#a35f87;box-shadow:0 0 0 2px #a35f8726,0 3px #a35f8733}.quick-duration-grid button:active:not(:disabled){transform:translateY(2px)scale(.97);box-shadow:0 1px #844c692e}.quick-duration-grid button.quick-save-ready:before{content:"✦";z-index:2;color:#b85883;pointer-events:none;text-shadow:0 2px #fff;font-family:Georgia,serif;font-size:13px;animation:.52s ease-out both sparkle-pop;position:absolute;top:-11px;left:4px}.quick-duration-grid button.quick-save-ready:after{content:""}.manual-duration-section{background:#f5f2ff;border-color:#cfc7ec}.manual-duration-section .duration-section-heading>span{color:#5e598a;background:#e9e5ff}.duration-current-value{color:#6b5e54;background:#fff6cf;border:1px dashed #dec774;transform:rotate(-.18deg)}.time-window-note{color:#61566f;background:#f6f1ff;border-color:#cfc3e5}.holiday-toggle{background:#fffafd;border-color:#e5ced9}.holiday-auto-notice{background:#fff3f6;border-color:#efc7d1}.calculation-preview{background:#fff2eb;border:1px solid #f0cfbf}.recognized-result{border-color:#e3c9d7}.delete-button{background:#fff0f4}.cancel-button{background:#fffefd;border-color:#dcc9d7}.save-button{background:linear-gradient(145deg, #86617f, var(--navy));border-color:#5e3f59;box-shadow:0 4px #5e3f59,0 8px 15px #5e3f5929}.save-notice{color:#68495e;background:#fff7fbfa;border-color:#dab4cc;border-radius:12px 16px 13px 18px;box-shadow:4px 5px #c9b9e861,0 14px 34px #6f48682e}.save-notice:before{content:"✦";color:#bd5b84}.save-notice:after{content:"✦";color:#8868aa}.save-notice>span{background:#a65378}.settings-source{color:#5c5268;background:#f8f5ff;border-color:#d8cde7}.day-type,.add-hint,.duration-method-picker label small,.direct-time-hint,.duration-method-note,.duration-section-heading small,.note-field>span small,.calculation-preview span{color:var(--muted)}.day-type,.duration-method-picker label small,.direct-time-hint,.duration-method-note,.duration-section-heading small,.calculation-preview span{font-size:11px}.grade-picker:focus-within{box-shadow:0 0 0 3px #7450843d}.holiday-toggle input:focus-visible+.toggle-visual{box-shadow:0 0 0 3px #7450843d}@keyframes backdrop-in{0%{opacity:0}}@keyframes card-pop{0%{opacity:0;transform:translateY(10px)scale(.972)rotate(-.3deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes mascot-arrive{0%{opacity:0;transform:translateY(6px)scale(.92)rotate(-4deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes mascot-note-heave{0%{opacity:0;transform:translateY(3px)scale(.9)rotate(-8deg)}58%{opacity:1;transform:translateY(-2px)scale(1.05)rotate(-5deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(-6deg)}}@keyframes mascot-nod{0%,to{transform:translateY(0)rotate(0)scale(1)}45%{transform:translateY(-3px)rotate(-3deg)scale(1.04)}72%{transform:translateY(0)rotate(2deg)scale(.99)}}@keyframes quick-bounce{0%{transform:scale(.96)}40%{transform:translateY(-2px)scale(1.06)rotate(1deg)}72%{transform:translateY(0)scale(.985)rotate(-.5deg)}to{transform:scale(1)rotate(0)}}@keyframes sparkle-pop{0%{opacity:0;transform:translateY(6px)scale(.35)rotate(-20deg)}42%{opacity:1;transform:translateY(-2px)scale(1.25)rotate(8deg)}to{opacity:0;transform:translateY(-9px)scale(.75)rotate(24deg)}}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%)translateY(13px)scale(.91)}68%{opacity:1;transform:translate(-50%)translateY(-2px)scale(1.025)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes toast-spark{0%{opacity:0;transform:translateY(9px) scale(.3) rotate(var(--spark-rotate))}38%{opacity:1;transform:translateY(-2px)scale(1.25)rotate(0)}to{opacity:0;transform:translateY(-14px) scale(.65) rotate(var(--spark-rotate))}}@keyframes check-pop{0%{transform:scale(.62)rotate(-13deg)}62%{transform:scale(1.17)rotate(5deg)}to{transform:scale(1)rotate(0)}}@media (hover:hover) and (pointer:fine){.secondary-button:hover,.month-controls button:hover,.export-actions button:not(:disabled):hover,.recent-template-button:hover,.modal-actions button:not(:disabled):hover,.close-button:hover{transform:translateY(-1px);box-shadow:0 7px 16px #784e6926}.summary-card:hover{transform:translateY(-3px)rotate(-.25deg);box-shadow:5px 7px #c9b9e83d,0 14px 30px #784e691f}.summary-card.raw-summary:hover{transform:translateY(-3px)rotate(.25deg)}.day-cell:hover{transform:translateY(-2px)}.day-cell:hover .entry-chip{transform:rotate(.45deg)translateY(-1px)}.recent-list button:hover{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.month-mascot img,.summary-card,.entry-chip,.rule-card,.recent-card{transform:none!important}button:not(:disabled):active,button.day-cell:not(:disabled):active,.quick-duration-grid button:active:not(:disabled){transform:none}.secondary-button:hover,.month-controls button:hover,.export-actions button:not(:disabled):hover,.recent-template-button:hover,.modal-actions button:not(:disabled):hover,.close-button:hover,.summary-card:hover,.summary-card.raw-summary:hover,.day-cell:hover,.recent-list button:hover{transform:none!important}.day-cell:hover .entry-chip{transform:rotate(-.45deg)!important}.day-cell:active:after,.quick-duration-grid button.quick-save-ready:before,.quick-duration-grid button.quick-save-ready:after,.save-notice:before,.save-notice:after{display:none}}@media (max-width:1050px){.workspace-grid{grid-template-columns:1fr}.calendar-card{grid-row:1}.side-panel{grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}}@media (max-width:760px){.app-shell{width:min(100% - 24px,620px)}.topbar{min-height:80px}.brand-mark{width:42px;height:42px}.brand-lockup h1{font-size:18px}.brand-lockup .eyebrow{display:none}.secondary-button{padding:0 10px}.month-heading{align-items:center;padding-top:28px}.overtime-motto{color:#7a50707a;white-space:normal;margin:5px 0 0;font-size:12px;line-height:1.25;position:static;transform:rotate(-2deg)}.month-mascot{border-radius:17px 22px 16px 20px;width:136px;height:auto;margin:-16px 0 -9px}.month-mascot img{width:100%;height:100%}.month-mascot figcaption{padding:4px 5px 3px;font-size:8px}.helper-copy{display:none}.summary-card{min-height:110px;padding:17px}.summary-card strong{font-size:22px}.calendar-toolbar{flex-direction:column;align-items:flex-start;padding:15px}.legend{justify-content:space-between;gap:8px;width:100%}.export-actions{width:100%}.export-actions button{flex:1}.day-cell{min-height:88px;padding:9px 6px}.day-type{display:none}.day-type.holiday-day-type{width:18px;max-width:none;height:18px;color:var(--red);background:var(--red-soft);border-radius:7px;place-items:center;font-size:0;display:grid;top:8px;right:5px;overflow:visible}.day-type.holiday-day-type:after{content:"휴";font-size:9px}.entry-chip{padding-left:5px}.entry-chip b{font-size:11px}.entry-chip small{display:none}.side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-panel .summary-card{min-height:110px}.summary-panel .pay-summary{grid-column:1/-1}.modal{padding:21px}}@media (max-width:480px){.app-shell{width:100%;padding:0 10px 30px}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:0 2px;display:grid}.brand-lockup{gap:8px;min-width:0}.brand-mark{border-radius:10px 8px 11px 9px;width:30px;height:30px;font-size:16px;display:grid;box-shadow:2px 3px #c9b9e8ad,0 7px 15px #8e52771a}.brand-mark:before{font-size:11px;top:-7px;right:-5px}.brand-mark:after{border-width:2px;width:7px;height:7px;bottom:2px;left:-4px}.brand-lockup h1{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.brand-lockup h1:after{height:5px;right:22%}.header-actions{gap:5px}.grade-picker,.secondary-button{height:44px;min-height:44px}.grade-picker{padding-inline:7px}.secondary-button{padding-inline:8px;font-size:11px}.grade-picker span{display:none}.month-heading{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;padding:24px 3px 16px;display:grid}.month-heading>div:first-child{min-width:0}.month-heading h2{font-size:clamp(32px,9vw,38px)}.month-title-row{justify-content:space-between;gap:8px}.month-mascot{border-radius:14px 18px 13px 17px;width:108px;height:auto;margin:-12px 0 -6px}.month-mascot img{width:100%;height:100%}.month-mascot figcaption{display:none}.overtime-motto{margin-top:4px;font-size:11px}.month-controls{grid-template-columns:40px 1fr 40px;width:100%;display:grid}.month-controls button{width:auto;min-height:44px}.section-kicker{font-size:10px}.summary-card{border-radius:12px 15px 13px 16px;min-width:0;min-height:112px;padding:17px 11px 13px;overflow:hidden;transform:none!important}.summary-card:before{width:35px;height:11px}.summary-card:after{width:24px;height:24px;font-size:12px;top:10px;right:8px}.summary-card>span{padding-right:25px;font-size:11px;line-height:1.25}.summary-card strong{overflow-wrap:anywhere;font-size:clamp(18px,5.8vw,22px)}.summary-card small{font-size:10px;line-height:1.35}.period-goals{border-radius:14px 17px 15px 18px;padding:17px 13px 13px}.period-goals-heading{align-items:flex-end;gap:8px}.period-goals-heading>div{min-width:0}.period-goals-heading h2{font-size:18px;line-height:1.2}.period-goals-heading>div>p:last-child{font-size:11px;line-height:1.4}.period-settings-button{min-height:44px;padding-inline:10px;font-size:11px}.period-goal-grid{grid-template-columns:1fr;gap:8px;margin-top:12px}.period-goal-card{padding:12px}.period-goal-card>strong{min-height:0;margin:8px 0 7px;font-size:16px}.period-goals-note{line-height:1.45}.target-list>label{gap:8px;min-height:76px}.target-list>label>span{max-width:145px}.target-list input{width:80px;padding-inline:8px}.target-default-button{width:100%}.calendar-card{border-radius:13px}.calendar-card:before{background-size:27px 12px,auto;height:12px}.legend{grid-template-columns:1fr;gap:6px;font-size:10px;display:grid}.legend span{white-space:normal;line-height:1.35}.export-actions button{min-height:44px}.weekday-row div{padding:9px 2px;font-size:11px}.day-cell{min-width:0;min-height:74px;padding:7px 3px;overflow:hidden}.day-cell:after{z-index:0;font-size:15px}.day-cell:active:after{opacity:.34}.day-number{font-size:14px;line-height:22px}.today-number{width:22px;height:22px;margin:-1px 0 0}.day-type.holiday-day-type{border-radius:50%;width:14px;height:14px;top:5px;right:2px}.day-type.holiday-day-type:after{font-size:7px}.entry-chip{text-align:center;border-radius:6px;width:100%;min-width:0;padding:4px 2px;transform:none}.entry-chip:before{display:none}.entry-chip b{letter-spacing:0;font-variant-numeric:tabular-nums;text-overflow:clip;white-space:nowrap;font-size:11px;line-height:1.15;overflow:hidden}.entry-time-full{display:none}.entry-time-compact{letter-spacing:0;display:inline}.add-hint{display:none}.rule-card,.recent-card{transform:none}.modal-backdrop{place-items:end center;padding:0}.modal{overscroll-behavior:contain;border-radius:24px 24px 0 0;width:100%;max-height:92dvh;padding:22px 16px 0}.modal-heading h2{font-size:26px}.mode-switch{margin:18px 0 16px}.duration-section{padding:12px}.time-input-grid{grid-template-columns:1fr 1fr}.time-separator{display:none}.quick-duration-grid{grid-template-columns:1fr 1fr}.calculation-preview{grid-template-columns:1fr auto 1fr}.calculation-preview>:nth-child(4),.calculation-preview>:nth-child(5){margin-top:10px}.calculation-preview>:nth-child(4){display:none}.recognized-result{border:0;border-top:1px solid #d6deea;grid-column:1/-1;padding:10px 0 0}.modal-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdfbf5;grid-template-columns:1fr 1fr;gap:8px;margin-inline:-16px;display:grid;position:sticky;bottom:0}.modal-actions .spacer{display:none}.modal-actions .delete-button{grid-column:1/-1}.modal-actions button{width:100%;height:46px}.delete-button{padding:0 10px!important}}@media (max-width:340px){.app-shell{padding-inline:4px}.month-mascot{width:84px;height:auto}.month-mascot img{width:100%;height:100%}.side-panel{grid-template-columns:1fr}.summary-panel .pay-summary{grid-column:auto}.summary-card:after{display:none}.summary-card>span{padding-right:0}}@media (forced-colors:active){.mascot-stack-note{color:buttontext;box-shadow:none;background:buttonface;border-color:buttontext}.mascot-sweat{box-shadow:none;background:highlight;border-color:canvastext}.mascot-sweat:after{background:highlighttext}}@media print{body{background:#fff}.app-shell{width:100%}.topbar,.month-controls,.month-mascot,.overtime-motto,.calendar-toolbar,.period-settings-button,footer{display:none}.month-heading{padding:0 0 15px}.workspace-grid{grid-template-columns:1fr}.calendar-card{grid-row:1}.side-panel{grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.summary-card,.calendar-card{box-shadow:none}.day-cell{min-height:84px}}
