:root{font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#233858;background:#f1f6ff;font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select,textarea{font:inherit}button{background:#ffffff;color:#365784;border:1px solid #dce6f5;border-radius:9px;padding:9px 13px;cursor:pointer}button:hover{background:#edf4ff}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #93b8ff;outline-offset:2px}input,select,textarea{border:1px solid #d6e2f3;border-radius:9px;background:#fbfdff;color:#233858;padding:11px;max-width:100%}input[type=date],input[type=datetime-local]{min-width:0}textarea{resize:vertical;line-height:1.8}header{max-width:1250px;margin:auto;padding:28px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{color:inherit;text-decoration:none;font-size:21px;font-weight:700;display:flex;align-items:center;gap:10px}.brand>span{background:#2563eb;color:white;border-radius:11px;padding:6px 11px}.brand small{font-size:11px;color:#7b8ca7;font-weight:400;margin-left:10px}.actions,.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.row{justify-content:space-between}.badge{background:#e8f0ff;padding:6px 10px;border-radius:20px;color:#476591;font-size:11px}.primary{background:#2563eb;color:white;border-color:#2563eb}.primary:hover{background:#1d4ed8}main{max-width:1250px;margin:auto;padding:20px 24px 45px}.intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:15px 0 34px}h1{font-size:36px;font-weight:650;letter-spacing:-1px;margin:12px 0}p{line-height:1.8;color:#7586a2;margin:9px 0}.eyebrow{font-size:10px;letter-spacing:2px;color:#7891b2}h2{font-size:18px;margin:0}h3{font-size:15px;margin:22px 0 10px}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:27px}.panel,.content{background:#ffffff;border:1px solid #dfe8f6;border-radius:16px;padding:22px}.panel{margin-bottom:16px}aside input[type=date]{width:100%;margin-top:16px}.monthnav{margin:14px 0 10px;font-size:13px}.monthnav button{padding:3px 10px;border:0;background:transparent;font-size:24px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar small{text-align:center;color:#7387a5;font-size:10px;padding:7px 0}.calendar button{padding:9px 0;border:0;background:transparent;font-size:12px;position:relative}.calendar .selected{background:#2563eb;color:white}.calendar .marked:after{content:'';width:4px;height:4px;background:#60a5fa;border-radius:50%;position:absolute;bottom:3px;left:calc(50% - 2px)}.legend{font-size:10px;color:#7890ac;margin-top:16px}.legend i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#60a5fa;margin-right:5px}.stats{display:flex;gap:40px}.stats strong{display:block;font-size:28px;font-weight:550}.stats span{font-size:11px;color:#7387a5}.aside-note{font-size:11px;margin:0 7px}.tabs{display:flex;gap:8px;border-bottom:1px solid #e4ecf8;padding-bottom:17px}.tabs button{border:0;background:transparent;font-size:13px}.tabs button.active{background:#e7efff;color:#2563eb;font-weight:650}.content-heading{margin:24px 0 18px}.content-heading h2{font-size:23px;margin-top:7px}.summary{font-size:12px;color:#5275a9;background:#edf4ff;border-radius:9px;padding:12px 15px;margin-bottom:20px}.day-card{border:1px solid #e0e9f7;border-radius:12px;overflow:hidden;margin-bottom:14px}.day-title{padding:12px 15px;background:#f5f8fe;display:flex;align-items:center;justify-content:space-between;gap:10px}.day-title button{border:0;background:transparent;padding:0;font-size:13px;font-weight:650;text-align:left}.day-title span{font-size:10px;color:#8192ac}.entry{display:flex;align-items:flex-start;gap:11px;padding:15px;border-top:1px solid #edf2fa}.entry:first-child{border-top:0}.entry .marker{width:7px;height:7px;border-radius:50%;background:#75a7f7;margin-top:8px;flex-shrink:0}.entry input[type=checkbox]{width:17px;height:17px;accent-color:#2563eb;margin:4px 0 0;cursor:pointer;flex-shrink:0}.entry-body{flex:1;min-width:0}.entry p{color:#344f76;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;margin:0 0 6px}.entry.completed p{text-decoration:line-through;color:#8a9ab3}.meta{color:#7a8eab;font-size:10px}.entry .actions{margin-top:6px;gap:8px}.entry button{border:0;background:transparent;padding:3px 0;font-size:11px;color:#7189aa}.entry .overdue{color:#ad6b42}.empty{padding:28px 15px;text-align:center;color:#7c91af;font-size:13px}.empty strong{display:block;font-size:28px;font-weight:400;margin:8px}.empty small{display:block;line-height:1.8;margin-top:8px}.day-empty{padding:12px 15px;font-size:11px;color:#94a2b9}.month-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.month-grid .day-card{margin:0;align-self:start}.month-grid .entry p{font-size:12px}.month-grid .day-title span{display:none}.filters{display:flex;align-items:center;gap:10px;margin-bottom:15px;font-size:12px}.filters select{padding:8px}.notice{background:#ecf3ff;border:1px solid #d8e6ff;border-radius:10px;padding:12px 15px;color:#57749c;font-size:12px;line-height:1.8}footer{font-size:11px;color:#8496b0;text-align:center;margin-top:30px}#status{min-height:20px;font-size:12px;color:#4e72a4;margin-top:18px}.small{font-size:12px;line-height:1.8}dialog{background:#ffffff;color:#233858;max-width:550px;width:calc(100% - 32px);border:1px solid #dce7f8;border-radius:18px;padding:26px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#18365b66}dialog label:not(.check){display:block;font-size:12px;margin:16px 0 7px}dialog input:not([type=checkbox]),dialog select,dialog textarea{width:100%}.check{display:flex;gap:8px;align-items:center;margin:15px 0;font-size:13px}.wide{width:100%;margin-top:12px}#editError,#loginError{color:#ac6241;font-size:12px}#settingsMessage{font-size:12px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}@media(max-width:900px){.brand small{display:none}.workspace{grid-template-columns:230px minmax(0,1fr);gap:18px}.panel,.content{padding:17px}.month-grid{grid-template-columns:1fr}}@media(max-width:650px){header{padding:18px 16px;align-items:flex-start}.brand{font-size:18px}header .actions{justify-content:flex-end;max-width:190px}header button{font-size:11px;padding:7px 9px}.badge{font-size:10px}main{padding:10px 16px 30px}h1{font-size:29px}.intro{align-items:flex-start;margin:14px 0 22px}.intro p{font-size:12px}.intro>.primary{font-size:12px;margin-top:28px;white-space:nowrap}.workspace{grid-template-columns:1fr}.panel{padding:15px;margin-bottom:10px}.calendar,.monthnav,.legend,.stats,.aside-note{display:none}.panel>.row{float:left;gap:10px}.panel input[type=date]{width:calc(100% - 160px);margin:0 0 0 15px;font-size:12px;padding:9px}.panel h2{font-size:13px}.panel>.row button{font-size:11px;padding:7px}.tabs{gap:3px;justify-content:space-between}.tabs button{font-size:12px;padding:8px 10px}.content-heading h2{font-size:20px}.month-grid{grid-template-columns:1fr}dialog{padding:22px}}
@media(max-width:650px){.intro{display:block}.intro>.primary{margin-top:12px}.intro h1{font-size:29px}.content-heading>.actions{flex-wrap:nowrap}}


/* Blue calendar layouts and local image attachments. */
header,main{max-width:1480px}.workspace{grid-template-columns:250px minmax(0,1fr)}.content{min-width:0}.planner-scroll{overflow-x:auto;border:1px solid #dbe7f7;border-radius:12px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.planner{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e0e9f7;min-width:770px}.week-planner{min-width:910px}.planner-weekday{background:#eef4ff;text-align:center;padding:12px 5px;color:#5372a2;font-size:12px;font-weight:600}.planner-cell{background:#fff;min-height:155px;padding:8px;min-width:0}.week-planner .planner-cell{min-height:390px}.planner-cell.outside{background:#f7f9fd}.outside .planner-day{color:#a5b3c9}.planner-cell.is-today{background:#f1f7ff;box-shadow:inset 0 0 0 1px #9fc3ff}.planner-cell.is-selected{box-shadow:inset 0 0 0 2px #739ffc}.planner-cell-head{display:flex;align-items:center;gap:4px;margin-bottom:9px;min-height:27px}.planner-day{border:0;background:transparent;font-size:12px;font-weight:650;padding:4px 6px}.is-today .planner-day{background:#2563eb;border-radius:7px;color:#fff}.today-label{font-size:9px;color:#5483d2}.planner-add{margin-left:auto;padding:3px 5px;border:0;color:#7b98bf;background:transparent;font-size:14px}.planner-event{display:flex;align-items:flex-start;gap:4px;background:#eaf2ff;border:0;border-left:3px solid #6a9df6;border-radius:5px;padding:7px 5px;margin:5px 0;width:100%;font-size:11px;text-align:left;line-height:1.6;color:#365e9a;min-width:0}.planner-event:hover{background:#d9e8ff}.task-event{background:#f0edff;color:#6a57a4;border-left-color:#a391e3}.task-event:hover{background:#e6dfff}.event-symbol{flex-shrink:0}.event-text{min-width:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.week-planner .event-text{-webkit-line-clamp:4}.event-done .event-text{text-decoration:line-through;opacity:.65}.event-photo{font-size:9px;white-space:nowrap;margin-left:auto}.planner-empty{display:block;color:#d1dcee;font-size:12px;padding:18px 6px}.planner-more{border:0;background:transparent;font-size:10px;color:#6484b5;padding:5px 2px}.planner-help{font-size:11px;color:#7b91ad;margin:13px 0 0}.upload-row{display:flex;align-items:center;gap:12px}.attachment-preview,.image-gallery{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.attachment{position:relative;width:110px}.attachment-open{display:block;width:110px;height:85px;border:1px solid #d5e5ff;padding:0;overflow:hidden;border-radius:9px}.attachment img{width:100%;height:100%;object-fit:cover}.attachment-remove{width:100%;border:0;padding:5px;font-size:11px;color:#6384b4;background:transparent}.entry .image-thumb{width:110px;height:82px;border:1px solid #dbe7fa;padding:0;overflow:hidden;border-radius:8px;display:block}.image-thumb img{width:100%;height:100%;object-fit:cover;display:block}#imageViewer{max-width:1000px;background:#f7faff;padding:18px}#imageCaption{font-size:12px;overflow-wrap:anywhere}#largeImage{display:block;max-width:100%;max-height:75dvh;object-fit:contain;margin:16px auto 0}dialog input[type=file]{display:none}.image-gallery{margin:9px 0 13px}@media(max-width:900px){.workspace{grid-template-columns:210px minmax(0,1fr)}}@media(max-width:650px){.workspace{grid-template-columns:1fr}.planner-scroll{margin:0 -5px}.planner{min-width:700px}.week-planner{min-width:840px}.planner-cell{min-height:140px}.week-planner .planner-cell{min-height:330px}.image-gallery .image-thumb{width:90px;height:72px}}
