:root{color:#373b34;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#343a32;--muted:#90958b;--green:#687d62;--green-dark:#50664b;--green-pale:#e9eee5;--line:#e8e9e2;--paper:#fff;--serif:"Noto Serif SC", "Songti SC", "SimSun", Georgia, serif;background:#f7f7f2;font-family:Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);background:#ffffffe0;justify-content:space-between;align-items:center;height:76px;padding:0 max(5vw,50vw - 560px);display:flex}.brand{color:var(--ink);font-family:var(--serif);white-space:nowrap;align-items:center;gap:11px;font-size:19px;font-weight:600;text-decoration:none;display:inline-flex}.brand-light{color:#a8b49e;padding:0 2px}.brand-mark{color:#fff;background:var(--green);width:52px;height:52px;font-family:var(--serif);border-radius:17px 17px 17px 5px;place-items:center;font-size:24px;display:grid;box-shadow:0 8px 20px #687d6233}.brand-mark.small{border-radius:11px 11px 11px 4px;width:34px;height:34px;font-size:17px}.main-nav{align-items:center;gap:34px;height:100%;display:flex}.main-nav button,.text-button{color:#858a80;background:0 0;border:0;padding:8px 0}.main-nav button{height:100%;font-size:14px;position:relative}.main-nav button.active{color:var(--green-dark);font-weight:600}.main-nav button.active:after{content:"";background:var(--green);height:2px;position:absolute;bottom:0;left:10%;right:10%}.account-area{align-items:center;gap:10px;font-size:13px;display:flex}.avatar{width:29px;height:29px;color:var(--green-dark);background:#e7ecdf;border-radius:50%;place-items:center;font-weight:600;display:grid}.account-name{text-overflow:ellipsis;max-width:100px;overflow:hidden}.account-area .text-button{margin-left:4px;font-size:12px}.demo-banner{color:#65775e;background:#edf1e8;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:5px 15px;font-size:11px;display:flex}.demo-banner>span{color:#a0b193}.demo-banner button{color:#50664b;background:0 0;border:0;padding:0;font-size:11px;text-decoration:underline}.content{width:min(100% - 40px,1000px);min-height:calc(100vh - 154px);margin:0 auto;padding:54px 0 60px}.page-heading{justify-content:space-between;align-items:end;margin-bottom:31px;display:flex}.eyebrow{color:#9aab91;letter-spacing:2px;margin:0 0 10px;font-size:10px;font-weight:700}h1,h2,h3,p{margin-top:0}.page-heading h1,.login-card h1{color:var(--ink);font-family:var(--serif);letter-spacing:1px;margin:0 0 10px;font-size:31px;font-weight:500}.muted{color:var(--muted);margin:0;font-size:13px}.primary-button{color:#fff;background:var(--green);border:0;border-radius:7px;min-height:42px;padding:0 19px;font-size:13px;font-weight:600;transition:background .18s,transform .18s}.primary-button:hover:not(:disabled){background:var(--green-dark);transform:translateY(-1px)}.heading-action{align-items:center;gap:8px;display:inline-flex}.heading-action span{font-size:18px;font-weight:400}.calendar-card{background:var(--paper);border:1px solid #ecece5;border-radius:13px;padding:25px 31px 18px;overflow:hidden;box-shadow:0 8px 28px #3b42320a}.calendar-toolbar{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.month-switch{align-items:center;gap:15px;display:flex}.month-switch h2{min-width:118px;color:var(--ink);font-family:var(--serif);text-align:center;margin:0;font-size:19px;font-weight:500}.icon-button{border:1px solid var(--line);color:#7a8275;background:#fff;border-radius:50%;place-items:center;width:29px;height:29px;font-size:21px;line-height:1;display:grid}.icon-button:hover{background:#f6f8f3;border-color:#b8c4b1}.today-button,.secondary-button{border:1px solid var(--line);color:#797f75;background:#fff;border-radius:6px;padding:7px 12px;font-size:12px}.weekday-grid,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-grid{border-bottom:1px solid var(--line);color:#9da197;text-align:center;padding-bottom:10px;font-size:11px}.calendar-grid{border-left:1px solid #f0f0eb}.calendar-day{min-width:0;min-height:96px;color:var(--ink);text-align:left;background:#fff;border:1px solid #f0f0eb;border-top:0;border-left:0;padding:10px 9px;transition:background .18s}.calendar-day:not(.blank):hover{background:#f8faf6}.calendar-day.blank{cursor:default;background:#fcfcfa}.calendar-day.is-today .day-number{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:25px;height:25px;display:inline-grid}.day-number{color:#63695f;width:max-content;margin-bottom:6px;font-size:12px;display:block}.day-count,.day-image{color:var(--green);align-items:center;gap:5px;margin:3px 0;font-size:10px;display:flex}.record-dot{background:#95a98a;border-radius:50%;width:6px;height:6px;display:inline-block}.day-preview{color:#858b80;text-overflow:ellipsis;white-space:nowrap;font-size:10px;display:block;overflow:hidden}.day-image{color:#9ca394}.calendar-hint{color:#a0a399;text-align:center;margin:15px 0 0;font-size:11px}.calendar-hint span{color:#b5c0af;padding:0 5px}.site-footer{color:#a5a89e;font-family:var(--serif);text-align:center;padding:19px 20px 25px;font-size:11px}.site-footer span{color:#a3b397;padding-left:6px}.loading-line{z-index:20;background:#e7eee3;width:100%;height:3px;position:fixed;top:0;left:0}.loading-line span{background:#829978;width:35%;height:100%;animation:1s ease-in-out infinite loading;display:block}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(300%)}}.toast-error{z-index:30;color:#a44e45;background:#fff8f7;border:1px solid #f0c8c3;border-radius:8px;align-items:center;gap:14px;max-width:min(420px,100vw - 40px);padding:12px 15px;font-size:13px;display:flex;position:fixed;top:90px;right:22px;box-shadow:0 8px 24px #28221a16}.toast-error button{color:inherit;background:0 0;border:0;font-size:19px}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#26302466;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.dialog{background:#fff;border:1px solid #e8eae3;border-radius:14px;width:min(100%,510px);max-height:min(90vh,800px);padding:27px 30px 25px;overflow-y:auto;box-shadow:0 22px 70px #1a211b30}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:23px;display:flex}.dialog-heading .eyebrow{margin-bottom:7px}.dialog-heading h2{color:var(--ink);font-family:var(--serif);margin:0;font-size:20px;font-weight:500}.close-button{color:#8e9389;background:#f4f5f1;border:0;border-radius:50%;width:30px;height:30px;font-size:21px;line-height:1}.record-list{gap:11px;max-height:52vh;margin-bottom:20px;display:grid;overflow-y:auto}.record-card{background:#fdfdfb;border:1px solid #eceee8;border-radius:9px;padding:15px 17px 13px;position:relative}.record-text{color:#4e544a;margin:0 25px 9px 0;font-size:13px;line-height:1.7}.record-card time{color:#a5a89e;text-align:right;margin-top:10px;font-size:10px;display:block}.delete-record{color:#a3a79e;background:0 0;border:0;width:23px;height:23px;font-size:19px;position:absolute;top:8px;right:10px}.delete-record:hover,.danger-text:hover{color:#c75c52}.dialog-empty{color:#a0a69a;text-align:center;padding:25px 0 28px}.dialog-empty span,.empty-icon{color:#acb9a2;margin-bottom:9px;font-size:26px;display:block}.dialog-empty p{margin:0;font-size:13px}.full-button{width:100%}.form-dialog{width:min(100%,540px)}.form-dialog form,.tag-dialog form{gap:14px;display:grid}.field-label{color:#61675d;margin:0;font-size:12px;font-weight:600;display:block}.field-label input:not([type=color]),.field-label textarea,.field-label select,.filter-card select{width:100%;color:var(--ink);background:#fff;border:1px solid #e5e8df;border-radius:6px;outline:none;margin-top:7px;padding:10px 12px;font-size:13px;font-weight:400}.field-label input:focus,.field-label textarea:focus,.filter-card select:focus{border-color:#9daf92;box-shadow:0 0 0 3px #9daf921f}.field-label textarea{resize:vertical;line-height:1.65}.char-count,.field-help{float:right;color:#a0a59b;font-size:10px;font-weight:400}.field-help{float:none}.upload-box{background:#fafbf8;border:1px dashed #dce2d7;border-radius:7px;min-height:88px;padding:11px}.upload-box>label{color:#8b9385;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:64px;font-size:11px;display:flex}.upload-box input[type=file]{display:none}.upload-plus{color:#8da182;font-size:20px}.thumbnail-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.thumbnail-row img{object-fit:cover;cursor:zoom-in;border-radius:6px;width:75px;height:68px}.preview-row{border-top:1px solid #eef0e9;padding-top:10px}.preview-item{position:relative}.preview-item button{color:#fff;background:#6f7e67;border:0;border-radius:50%;width:20px;height:20px;line-height:1;position:absolute;top:-6px;right:-6px}.tag-row,.tag-selector{flex-wrap:wrap;gap:7px;margin-top:9px;display:flex}.tag-chip{color:var(--tag-color);background:color-mix(in srgb, var(--tag-color) 11%, white);border-radius:20px;align-items:center;gap:5px;padding:4px 9px;font-size:10px;display:inline-flex}.tag-selector{margin-top:-7px}.tag-chip.selectable{cursor:pointer;border:1px solid #0000}.tag-chip.selectable.selected{border-color:color-mix(in srgb, var(--tag-color) 50%, white);background:color-mix(in srgb, var(--tag-color) 16%, white)}.tag-check{opacity:.7}.inline-add{float:right;color:var(--green);background:0 0;border:0;font-size:11px}.submit-button{margin-top:6px}.filter-card{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:end;gap:14px;margin-bottom:34px;padding:17px 20px;display:flex}.filter-card label{color:#858b80;width:155px;font-size:11px}.filter-card select{margin-top:5px;padding:8px 10px}.filter-reset{min-height:34px;color:var(--green-dark);background:#f0f4ed;border-color:#d7e0d2;flex:none;padding:0 15px;font-size:12px}.filter-reset:hover{background:#e7eee3;border-color:#b8c8b1}.timeline{width:min(100%,750px);margin:0 auto}.timeline-entry{grid-template-columns:74px 18px 1fr;gap:14px;padding-bottom:23px;display:grid;position:relative}.timeline-entry:not(:last-child):before{content:"";background:#dfe5da;width:1px;position:absolute;top:14px;bottom:-2px;left:96px}.timeline-date{color:#9b9f95;flex-direction:column;align-items:flex-end;padding-top:5px;font-size:10px;display:flex}.timeline-date strong{color:#65775e;font-family:var(--serif);font-size:22px;font-weight:500}.timeline-pin{z-index:1;background:#f7f7f2;border:2px solid #8ba080;border-radius:50%;width:9px;height:9px;margin:12px auto 0}.timeline-card{border:1px solid var(--line);background:#fff;border-radius:9px;padding:16px 18px}.entry-topline{color:#a0a398;justify-content:space-between;font-size:10px;display:flex}.entry-content{color:#50564d;white-space:pre-wrap;margin:12px 0 0;font-size:13px;line-height:1.8}.danger-text{color:#aa807a;font-size:11px}.empty-state{color:#9da297;text-align:center;padding:75px 20px}.empty-state h3{color:#60675c;font-family:var(--serif);margin:0 0 7px;font-size:17px;font-weight:500}.empty-state p{margin:0;font-size:12px}.tag-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.tag-card{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:13px;min-height:81px;padding:14px 17px;display:flex}.tag-color{border-radius:8px;width:12px;height:35px}.tag-info{flex:1;gap:5px;min-width:0;display:grid}.tag-info strong{color:#50564d;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.tag-info span{color:#a0a398;font-size:10px}.tag-actions{align-items:center;gap:12px;display:flex}.secondary-button{padding:6px 10px;font-size:11px}.tag-dialog{width:min(100%,410px)}.color-input{align-items:center;gap:10px;margin-top:7px;display:flex}.color-input input{background:#fff;border:1px solid #e5e8df;border-radius:5px;width:39px;height:34px;padding:2px}.color-input code{color:#8a8f84;font-size:11px}.image-viewer{z-index:60;cursor:zoom-out;background:#151914ef;place-items:center;padding:50px;display:grid;position:fixed;inset:0}.image-viewer img{object-fit:contain;max-width:100%;max-height:100%}.image-viewer button{color:#fff;background:0 0;border:0;font-size:34px;position:absolute;top:20px;right:24px}.login-screen{background:radial-gradient(at 50% 38%,#fefefb 0%,#f3f4ec 68%,#ecefe5 100%);place-items:center;min-height:100vh;padding:30px 20px 70px;display:grid;position:relative}.login-card{text-align:center;background:#ffffffde;border:1px solid #eaede5;border-radius:15px;width:min(100%,390px);padding:39px 36px 35px;box-shadow:0 18px 60px #38442b12}.login-card .brand-mark{margin:0 auto 21px}.login-card .eyebrow{margin-bottom:9px}.login-card h1{font-size:24px}.login-card .muted{line-height:1.8}.login-form{text-align:left;gap:9px;margin-top:25px;display:grid}.login-form label{color:#62685e;font-size:12px;font-weight:600}.login-form input{border:1px solid #e2e6dd;border-radius:6px;outline:0;height:43px;padding:0 12px;font-size:13px}.login-form input:focus{border-color:#93a889;box-shadow:0 0 0 3px #93a88920}.login-form .primary-button{margin-top:5px}.error-message{color:#bd5b50;margin:14px 0 0;font-size:12px}.login-footer{color:#a6aa9f;font-family:var(--serif);font-size:11px;position:absolute;bottom:27px}@media (width<=700px){.topbar{flex-wrap:wrap;gap:0;height:auto;min-height:65px;padding:10px 17px 0}.brand{font-size:16px}.account-area{gap:6px}.account-name{max-width:55px}.demo-banner{font-size:10px}.main-nav{order:3;justify-content:center;gap:clamp(20px,8vw,40px);width:100%;height:43px}.main-nav button{font-size:12px}.content{width:min(100% - 28px,1000px);min-height:calc(100vh - 168px);padding-top:35px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:25px}.page-heading .muted{max-width:240px;font-size:11px;line-height:1.7}.heading-action{flex:none;min-height:37px;padding:0 11px;font-size:11px}.calendar-card{padding:18px 12px 14px}.calendar-day{min-height:72px;padding:7px 4px}.day-preview{display:none}.day-count{gap:2px;font-size:8px}.day-image{font-size:8px}.calendar-hint{font-size:9px}.filter-card{gap:7px;padding:12px 9px}.filter-card label{flex:1;min-width:0;font-size:10px}.filter-card select{padding:7px 5px;font-size:11px}.tag-list{grid-template-columns:1fr}.timeline-entry{grid-template-columns:48px 12px 1fr;gap:8px}.timeline-entry:not(:last-child):before{left:61px}.timeline-date strong{font-size:19px}.timeline-date{font-size:8px}.timeline-card{padding:12px}.dialog{padding:22px 18px 19px}}@media (width<=390px){.calendar-day{min-height:63px}.day-count{font-size:7px}.account-name{display:none}}
