:root { --paper:#f6f0e7; --paper-deep:#eee4d5; --ink:#2f2c2c; --muted:#716b65; --line:#d7ccbd; --card:#343132; --plum:#55364e; --amber:#e3a13e; --navy:#293747; --shadow:0 12px 32px rgba(47,44,44,.10); font-family: ui-rounded, "SF Pro Rounded", "Avenir Next", system-ui, sans-serif; color:var(--ink); background:var(--paper); }
:root[data-theme="ink"] { --paper:#eae3d9; --paper-deep:#dfd5c6; --ink:#252323; }
*{box-sizing:border-box} body{margin:0;min-height:100vh;background-color:var(--paper);background-image:radial-gradient(rgba(47,44,44,.12) 1px,transparent 1px);background-size:18px 18px} button,input,textarea,select{font:inherit} button{cursor:pointer} button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(227,161,62,.65);outline-offset:2px}.loading{display:grid;place-items:center;min-height:100vh;color:var(--muted)}
.auth-shell{width:min(620px,calc(100% - 32px));margin:clamp(48px,15vh,130px) auto;background:rgba(255,252,247,.8);border:1px solid var(--line);border-radius:28px;padding:clamp(24px,6vw,48px);box-shadow:var(--shadow)}.eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:800}.auth-shell h1{font-size:clamp(2rem,7vw,3.5rem);letter-spacing:-.06em;margin:.35rem 0 1rem}.auth-shell p{line-height:1.6;color:var(--muted)}.recovery-code{display:block;width:100%;resize:none;border:1px dashed var(--ink);background:var(--paper-deep);border-radius:14px;padding:14px;margin:18px 0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.9rem;word-break:break-all}.checkline{display:flex;align-items:flex-start;gap:10px;margin:18px 0;color:var(--ink)!important}.checkline input{margin-top:4px}.primary,.secondary,.danger,.icon-button{border:0;border-radius:14px;padding:12px 16px;font-weight:750}.primary{background:var(--ink);color:#fff}.primary:hover{filter:brightness(1.12)}.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.danger{background:#8b3f35;color:#fff}.auth-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.small{font-size:.85rem}.error{color:#8b3f35;font-weight:650}.hidden{display:none!important}
.shell{max-width:1440px;margin:auto;padding:18px 24px 34px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0 22px}.brand{font-weight:900;letter-spacing:-.06em;font-size:1.45rem}.brand span{color:#9b6130}.top-actions{display:flex;gap:8px;align-items:center}.icon-button{background:transparent;border:1px solid var(--line);padding:9px 12px}.tabs{display:inline-flex;border:1px solid var(--line);padding:4px;background:rgba(255,255,255,.28);border-radius:14px;gap:3px}.tabs button{border:0;padding:8px 14px;border-radius:10px;background:transparent;color:var(--muted);font-weight:750}.tabs button.active{background:var(--ink);color:white}.screen{display:none}.screen.active{display:block}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.toolbar h1{font-size:clamp(1.8rem,4vw,2.8rem);letter-spacing:-.06em;margin:0}.date-nav{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.date-nav button{border:1px solid var(--line);background:rgba(255,255,255,.35);border-radius:10px;padding:8px 10px;color:var(--ink)}
.today-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,.75fr);gap:18px}.panel{background:rgba(255,252,247,.72);border:1px solid var(--line);border-radius:20px;box-shadow:0 5px 15px rgba(47,44,44,.035);padding:18px}.panel h2{font-size:1.1rem;letter-spacing:-.03em;margin:0 0 14px}.event-list{display:grid;gap:10px}.event-row{display:grid;grid-template-columns:75px 1fr auto;gap:12px;align-items:center;border-radius:14px;padding:10px;border:1px solid transparent}.event-row:hover{background:rgba(47,44,44,.045)}.event-time{font-size:.8rem;color:var(--muted);font-weight:700}.event-title{font-weight:800}.event-note{font-size:.82rem;color:var(--muted);margin-top:2px}.color-dot{width:12px;height:12px;border-radius:50%;margin-right:4px}.row-actions{display:flex;gap:4px}.tiny-button{border:0;background:transparent;color:var(--muted);padding:5px}.empty{padding:34px 10px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:6px}.task-list{display:grid;gap:8px}.task{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(215,204,189,.65)}.task:last-child{border:0}.task input{width:19px;height:19px;accent-color:var(--ink)}.task.done .task-name{text-decoration:line-through;color:var(--muted)}.task-name{flex:1;font-weight:650}.task-due{font-size:.75rem;color:var(--muted)}.inline-form{display:flex;gap:8px;margin-top:13px}.inline-form input{min-width:0;flex:1}.field, .inline-form input{border:1px solid var(--line);background:#fffcf7;border-radius:10px;padding:10px;color:var(--ink)}
.week-scroll{overflow:auto;border:1px solid var(--line);border-radius:20px;background:rgba(255,252,247,.62);box-shadow:0 5px 15px rgba(47,44,44,.035)}.week-grid{position:relative;display:grid;grid-template-columns:66px repeat(7,minmax(145px,1fr));min-width:1080px}.week-header{height:58px;position:sticky;top:0;background:rgba(246,240,231,.96);z-index:4;border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;padding:8px 10px}.week-header b{font-size:.85rem}.week-header span{font-size:.75rem;color:var(--muted)}.time-label{height:64px;border-bottom:1px solid rgba(215,204,189,.75);padding:6px 8px;text-align:right;font-size:.74rem;color:var(--muted);font-weight:700}.day-column{position:relative;border-left:1px solid rgba(215,204,189,.8);background-image:repeating-linear-gradient(to bottom, transparent 0,transparent 63px,rgba(215,204,189,.75) 64px)}.day-column .event-card{position:absolute;top:calc(var(--top) * 1px);height:calc(var(--height) * 1px);left:calc(6px + var(--lane) * (100% / var(--lanes)));width:calc((100% / var(--lanes)) - 12px);border-radius:10px;padding:9px 8px;overflow:hidden;color:white;box-shadow:0 3px 8px rgba(20,20,20,.12);border:2px solid rgba(255,255,255,.35);font-size:.78rem;text-align:left}.event-card.amber{color:#2f2c2c;border-color:rgba(47,44,44,.28)}.event-card b{display:block;font-size:.82rem;line-height:1.12}.event-card span{display:block;opacity:.8;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-card.charcoal{background:var(--card)}.event-card.plum{background:var(--plum)}.event-card.amber{background:var(--amber)}.event-card.navy{background:var(--navy)}.event-card[draggable="true"]{cursor:grab}.event-card.dragging{opacity:.45}.day-column.drop-target{background-color:rgba(227,161,62,.16)}
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.note{min-height:150px;display:flex;flex-direction:column}.note p{white-space:pre-wrap;line-height:1.5;margin:0;flex:1}.note time{color:var(--muted);font-size:.75rem;margin-top:14px}.note-actions{align-self:flex-end}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.setting-card{display:grid;gap:10px}.setting-card label{font-size:.85rem;color:var(--muted);font-weight:650}.setting-card select{width:100%}
dialog{border:0;border-radius:22px;padding:0;width:min(540px,calc(100% - 28px));background:var(--paper);box-shadow:0 28px 70px rgba(20,18,18,.35)}dialog::backdrop{background:rgba(34,30,28,.45);backdrop-filter:blur(2px)}.modal-body{padding:24px}.modal-body h2{margin:0 0 16px;letter-spacing:-.04em}.modal-form{display:grid;gap:13px}.modal-form label{display:grid;gap:6px;font-size:.83rem;font-weight:750;color:var(--muted)}.modal-form .field{width:100%}.modal-form textarea{min-height:84px;resize:vertical}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-footer{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.modal-footer .right{display:flex;gap:8px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:#fff;border-radius:12px;padding:10px 14px;transition:.2s;pointer-events:none;z-index:10}#toast.show{transform:translate(-50%,0);opacity:1}
@media (max-width:720px){.shell{padding:12px 14px 28px}.topbar{padding-bottom:14px}.brand{font-size:1.2rem}.top-actions .secondary{display:none}.toolbar{align-items:flex-start;flex-direction:column}.today-grid{grid-template-columns:1fr}.panel{padding:15px}.event-row{grid-template-columns:62px 1fr auto}.tabs{width:100%}.tabs button{flex:1}.two-fields{grid-template-columns:1fr}.week-scroll{margin:0 -14px;border-radius:0;border-left:0;border-right:0}.modal-body{padding:20px}.inline-form{flex-wrap:wrap}.inline-form input{min-width:150px}.auth-shell{margin:32px auto}}
@media (min-width:721px){.week-default{display:block}.today-default{display:none}}
