:root{color-scheme:light;font-family:Inter,Segoe UI,Microsoft YaHei,PingFang SC,system-ui,sans-serif;--gold-900: #4f3617;--gold-800: #735326;--gold-700: #9d7338;--gold-600: #bd9150;--gold-500: #d3ac68;--gold-400: #e1c184;--gold-300: #ead3a6;--gold-200: #f2e2c2;--gold-100: #fbf3e4;--paper: #ffffff;--background: #f5f5f5;--white: #ffffff;--text: #1a1a1a;--muted: #666666;--border: #ddd;--danger: #dc3545;--success: #28a745;background:#f5f5f5;color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--background)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.64}.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;width:248px;flex-shrink:0;background:var(--gold-700);color:var(--white);padding:22px 18px;display:flex;flex-direction:column;gap:10px;transition:transform .3s ease,width .3s ease}.sidebar.collapsed{width:0;padding:0;overflow:hidden}.mobile-menu-toggle{display:none;background:none;border:none;color:var(--white);padding:4px;cursor:pointer;margin-right:8px}.mobile-header-toggle{display:none;background:none;border:none;color:var(--text);padding:4px;cursor:pointer;margin-right:8px}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:99}.brand{min-height:48px;display:flex;align-items:center;gap:12px}.brand-logo{width:32px;height:32px;object-fit:contain;border-radius:6px;flex-shrink:0}.login-brand .brand-logo{width:40px;height:40px;border-radius:8px}.brand strong,.brand span{display:block}.brand span{margin-top:2px;color:#ffffffc7;font-size:13px}.nav-tabs{display:grid;gap:8px}.topbar-actions{display:flex;align-items:center;gap:10px}.user-menu-trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--paper);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:background .18s ease,border-color .18s ease}.user-menu-trigger:hover{background:var(--gold-100);border-color:var(--gold-300)}.user-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--paper);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:10;overflow:hidden}.user-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--text);font-size:13px;cursor:pointer;text-align:left}.user-dropdown button:hover{background:var(--gold-100)}.user-dropdown button+button{border-top:1px solid var(--border)}.user-dropdown button:last-child{color:var(--danger)}.pwd-form{display:grid;gap:14px;padding:20px;overflow-y:auto;flex:1}.nav-tabs button,.ghost-button,.primary-button,.secondary-button,.icon-button{border:1px solid transparent;border-radius:8px;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .18s ease,border-color .18s ease,color .18s ease}.nav-tabs button{width:100%;color:#ffffffe0;background:transparent;justify-content:flex-start;padding:0 12px}.nav-tabs button.active,.nav-tabs button:hover,.ghost-button:hover{background:#ffffff29}.ghost-button{background:transparent;color:var(--white);border-color:#ffffff52;padding:0 12px}.ghost-button.compact{min-height:34px;color:var(--gold-800);border-color:var(--border)}.workspace{position:relative;min-width:0;padding:0;overflow-y:auto;max-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:20px 0;background:linear-gradient(135deg,var(--gold-100) 0%,var(--paper) 100%);border-bottom:1px solid var(--gold-200);box-shadow:0 2px 8px #4f361714;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}h1,h2,p{margin:0}.workspace>section,.workspace>div:not(.loading-mask){flex-shrink:0;margin:0 20px 20px}.topbar-title{padding-left:20px}.topbar-title h1{margin:0}.topbar-actions{display:flex;align-items:center;gap:12px;padding-right:20px}.user-menu-wrapper{position:relative}h1{font-size:24px;line-height:1.2;font-weight:600;margin:0;color:var(--text)}h2{font-size:17px;line-height:1.3}.eyebrow{margin:0 0 3px;color:var(--muted);font-size:13px}.primary-button{background:var(--gold-700);color:var(--white);padding:0 14px;border-color:var(--gold-700)}.primary-button:hover{background:var(--gold-800)}.secondary-button{background:var(--paper);color:var(--gold-800);border-color:var(--border);padding:0 14px}.secondary-button:hover{background:var(--gold-100)}.status-line{border-radius:8px;background:var(--gold-100);border:1px solid var(--gold-300);color:var(--gold-800);padding:11px 13px;margin-bottom:16px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.message-countdown{font-size:12px;color:var(--muted);white-space:nowrap}.status-line.error{background:#fff0e8;border-color:#e8b99a;color:var(--danger)}.confirm-dialog{max-width:400px;text-align:center;padding:20px 10px 5px}.confirm-dialog h2{margin:0 0 8px;font-size:18px;color:var(--text)}.confirm-dialog-icon{margin-bottom:16px;color:#e67e22}.confirm-dialog-message{margin:0 0 24px;color:var(--muted);font-size:14px;line-height:1.6}.confirm-dialog .form-actions{justify-content:center;gap:12px}.primary-button.danger{background:#dc3545;border-color:#dc3545;color:#fff}.primary-button.danger:hover{background:#c82333;border-color:#c82333}.metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:16px;padding:0 20px}.metric{border:1px solid var(--border);background:var(--paper);border-radius:8px;padding:15px;min-height:82px;display:grid;align-content:space-between}.metric span{color:var(--muted);font-size:13px}.metric strong{font-size:22px;line-height:1.2;overflow-wrap:anywhere}.metric.success strong{color:var(--danger)}.metric.danger strong,.danger-text{color:var(--success)}.success-text{color:var(--danger)}.panel,.note-card{border:1px solid var(--border);border-radius:8px;background:var(--paper);box-shadow:0 1px 2px #0000000a}.diary-item{border:1px solid var(--border);border-radius:8px;background:var(--paper)}.panel{padding:16px 20px;margin-bottom:16px}.panel-head{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:16px 16px 0}.table-scroll{overflow-x:auto}table{width:100%;min-width:1280px;border-collapse:collapse}th,td{text-align:left;vertical-align:top;padding:12px 11px;border-top:1px solid var(--border);font-size:13px}th{color:var(--gold-800);background:#f5e7ca;font-weight:700}td{color:var(--text)}tbody tr:hover{background:#fff5e2}.muted{color:var(--muted)}.block{display:block;margin-top:5px;max-width:260px;white-space:pre-wrap}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;border-radius:8px;padding:0 9px;font-weight:700;white-space:nowrap}.badge.neutral{background:#f0dfbb;color:var(--gold-800)}.badge.success{background:#ead2a0;color:var(--gold-900)}.badge.danger{background:#f7d6c2;color:var(--danger)}.actions-cell{position:sticky;right:0;z-index:1;width:92px;white-space:nowrap;background:var(--paper)}th.actions-cell{background:#f5e7ca}.icon-button{width:34px;min-height:34px;padding:0;background:var(--paper);border-color:var(--border);color:var(--gold-800);margin-right:6px}.icon-button:hover{background:var(--gold-100)}.danger-icon{color:var(--danger)}label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700}input,textarea{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--white);color:var(--text);padding:9px 10px;outline:none;font-weight:400}.modal-panel input,.modal-panel textarea{font-weight:400}textarea{resize:vertical;min-height:88px;white-space:pre-wrap}input:focus,textarea:focus{border-color:var(--gold-600);box-shadow:0 0 0 3px #bd91502e}.position-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:13px}.wide{grid-column:span 2}.form-actions{display:flex;align-items:end;justify-content:flex-end;gap:10px;padding:15px 0 0;border-top:1px solid var(--border);background:var(--paper);position:sticky;bottom:0;z-index:1}.modal-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;background:#4f36176b}.modal-panel{width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--paper);box-shadow:0 18px 60px #4f36173d;display:flex;flex-direction:column}.modal-head{position:sticky;top:0;z-index:1;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--paper)}.position-modal .position-form{grid-template-columns:repeat(3,minmax(160px,1fr));padding:20px;overflow-y:auto;flex:1}.position-modal .wide{grid-column:span 3}.note-form{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:13px;padding:20px;overflow-y:auto;flex:1}.note-form .wide{grid-column:span 2}.strategy-layout{display:grid;grid-template-columns:1fr 420px;gap:16px;align-items:start}.note-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-content:start;width:100%;padding:10px 20px}.note-card{position:relative;padding:0;width:100%;box-sizing:border-box;border-radius:16px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(234,211,166,.3);box-shadow:0 4px 20px #4f361714,0 1px 3px #0000000a;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column}.note-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--gold-500) 0%,var(--gold-700) 100%);opacity:0;transition:opacity .3s ease}.note-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px #4f361726,0 2px 8px #0000000f;border-color:var(--gold-300)}.note-card:hover:before{opacity:1}.note-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0 24px}.note-title-row h2{font-size:18px;font-weight:700;color:var(--gold-900);margin:0;line-height:1.3;flex:1}.note-card-actions{display:flex;gap:6px;opacity:0;transition:opacity .2s ease;flex-shrink:0}.note-card:hover .note-card-actions{opacity:1}.note-card>p{padding:16px 20px 20px 24px;white-space:pre-wrap;color:var(--text);line-height:1.7;font-size:14px;margin:0;flex:1}.edit-note{margin-bottom:0;align-self:start;display:grid;gap:13px}.diary-layout{display:grid;grid-template-columns:420px minmax(0,1fr);gap:16px;align-items:start}.diary-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:10px 20px}.diary-item{position:relative;padding:0;width:100%;box-sizing:border-box;border-radius:16px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(234,211,166,.3);box-shadow:0 4px 20px #4f361714,0 1px 3px #0000000a;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column}.diary-item:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--gold-500) 0%,var(--gold-700) 100%);opacity:0;transition:opacity .3s ease}.diary-item:hover{box-shadow:0 12px 40px #4f361726,0 2px 8px #0000000f;transform:translateY(-6px);border-color:var(--gold-300)}.diary-item:hover:before{opacity:1}.diary-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0 24px}.diary-item time{color:var(--gold-900);font-size:18px;font-weight:700;line-height:1.3;flex:1;margin:0}.diary-item .markdown-content,.diary-item>p{padding:16px 20px 20px 24px;white-space:pre-wrap;color:var(--text);line-height:1.7;font-size:14px;margin:0;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;text-overflow:ellipsis}.diary-item-actions{display:flex;gap:6px;opacity:0;transition:opacity .2s ease;flex-shrink:0}.diary-item:hover .diary-item-actions{opacity:1}.diary-form{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:13px;padding:20px;overflow-y:auto;flex:1}.diary-form .wide{grid-column:span 2}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gold-100)}.login-card{width:min(420px,calc(100vw - 32px));background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:36px 32px;box-shadow:0 12px 48px #4f361724}.login-brand{display:flex;align-items:center;gap:12px;color:var(--gold-800);margin-bottom:28px}.login-brand strong{font-size:20px;display:block}.login-brand span{font-size:13px;color:var(--muted)}.login-form{display:grid;gap:16px}.login-error{color:var(--danger);font-size:13px;margin:0}.login-submit{width:100%;min-height:42px;font-size:15px;margin-top:4px}.loading-mask{position:fixed;inset:0;display:grid;place-items:center;background:#fbf3e48a;pointer-events:none}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.app-shell{flex-direction:column}.topbar{position:relative;top:auto;flex-wrap:wrap}.topbar-title{order:1;flex:1}.topbar-actions{order:2}.sidebar{position:relative;top:auto;z-index:10;width:100%;height:auto;transform:none;padding:12px 16px}.sidebar.collapsed{width:100%;padding:0 16px;overflow:hidden}.sidebar .brand{margin-bottom:12px}.mobile-menu-toggle{display:none}.mobile-header-toggle{display:inline-flex}.sidebar-overlay{display:none}.nav-tabs{display:flex;gap:8px;flex-wrap:nowrap}.nav-tabs button{flex:1;min-width:0;padding:10px 8px;font-size:13px;justify-content:center}.sidebar .brand{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sidebar .brand>div{flex:1}.metrics-grid{grid-template-columns:repeat(2,minmax(150px,1fr));padding:0 16px}.panel{padding:16px}.note-grid,.diary-list{padding:10px 16px}.topbar-title{padding-left:16px}.topbar-actions{padding-right:16px}.strategy-layout,.diary-layout{grid-template-columns:1fr}}@media(max-width:760px){.workspace{padding:0}.topbar{padding:16px;flex-direction:column;align-items:flex-start;gap:12px}.topbar-actions{width:100%;justify-content:space-between}.diary-list{grid-template-columns:1fr}.topbar,.sidebar{align-items:stretch}.topbar,.sidebar{flex-direction:column}.sidebar{display:flex}.nav-tabs,.metrics-grid,.note-grid,.position-form,.note-form{grid-template-columns:1fr}.note-form .wide{grid-column:auto}.diary-form,.diary-form .wide{grid-column:auto;grid-template-columns:1fr}.wide{grid-column:auto}h1{font-size:24px}}.markdown-content{padding:16px 20px 20px 24px;color:var(--text);line-height:1.7;font-size:14px;flex:1}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25;color:var(--gold-900)}.markdown-content h1{font-size:2em}.markdown-content h2{font-size:1.5em}.markdown-content h3{font-size:1.25em}.markdown-content p{margin-top:0;margin-bottom:16px}.markdown-content code{padding:.2em .4em;margin:0;font-size:85%;background-color:#4f36170f;border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-content pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#4f36170a;border-radius:6px;margin-bottom:16px}.markdown-content pre code{padding:0;margin:0;font-size:100%;background-color:transparent}.markdown-content ul,.markdown-content ol{padding-left:2em;margin-top:0;margin-bottom:16px}.markdown-content li{margin-bottom:4px}.markdown-content blockquote{margin:0 0 16px;padding:0 1em;color:var(--muted);border-left:.25em solid var(--gold-300)}.markdown-content table{border-collapse:collapse;width:100%;margin-bottom:16px}.markdown-content table th,.markdown-content table td{padding:6px 13px;border:1px solid var(--border)}.markdown-content table tr{background-color:transparent}.markdown-content table tr:nth-child(2n){background-color:#4f361705}.markdown-content hr{height:.25em;padding:0;margin:24px 0;background-color:var(--gold-200);border:0}.markdown-content a{color:var(--gold-700);text-decoration:none}.markdown-content a:hover{text-decoration:underline;color:var(--gold-900)}.markdown-content img{max-width:100%;box-sizing:border-box}
