:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#244038;background:#f5f8f4;font-size:14px;line-height:1.65}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #79b39d;outline-offset:3px}
.shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;flex:none;width:225px;height:100vh;padding:27px 15px;color:#d7e9e1;background:#1d3933;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;margin:0 9px 49px}.brand-mark{width:45px;height:45px;background:#d5e9d3;color:#214e3b;border-radius:14px;display:grid;place-items:center;font-size:23px;font-weight:900;transform:rotate(-8deg)}
.brand strong{display:block;font-size:23px;line-height:1.2;color:white;letter-spacing:2px}.brand small{display:block;font-size:11px;color:#97b5a8;margin-top:5px}.sidebar-label{font-size:10px;letter-spacing:2px;color:#83a899;margin:0 13px 10px}
nav{display:grid;gap:5px}.nav{border:0;color:#bed4c9;background:transparent;border-radius:10px;text-align:left;padding:11px 14px;display:flex;align-items:center;gap:11px;font-size:13px}
.nav span{font-size:18px;width:21px}.nav:hover,.nav.active{background:#3b5e52;color:white}.nav.active{box-shadow:inset 3px 0 #abd6ac}.sidebar-foot{margin-top:auto;border-top:1px solid #49675a;padding:20px 9px 0;font-size:12px}
.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b5dfb4;margin-right:4px}.sidebar-foot small{display:block;color:#9cbbb0;margin-top:6px;line-height:1.6;font-size:11px}
.main{width:100%;min-width:0;max-width:1500px;margin:0 auto;padding:43px clamp(20px,4vw,61px) 20px}.heading{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-bottom:29px}
.eyebrow{display:block;font-size:10px;letter-spacing:2px;color:#4a9279;font-weight:800}.heading h1{font-size:31px;line-height:1.35;margin:7px 0 5px;font-weight:780;letter-spacing:-1px}.heading p{margin:0;color:#71877f}.heading-actions{display:flex;align-items:center;gap:12px;flex:none}.status{white-space:nowrap;color:#277a5a;background:#e5f2e8;padding:7px 12px;border-radius:22px;font-size:11px}.status.warning{background:#fff1d9;color:#9b6a22}
.button{border-radius:10px;padding:10px 16px;font-weight:600;border:1px solid #dce7e0;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:transform .14s,background .14s}
.button:active{transform:scale(.98)}.button.pale{background:#fff;color:#31564b}.button.pale:hover{background:#e8f1ea}.button.dark{background:#1c4135;color:white;border-color:#1c4135}.button.dark:hover{background:#346754}
.notice{margin-bottom:19px;padding:12px 17px;border-radius:10px;background:#fff4df;border:1px solid #ecd6b4;color:#855a23;font-size:12px}
.page{display:none}.page.active{display:block}.hero{min-height:235px;background:linear-gradient(115deg,#edf5e9,#dbeade);border:1px solid #e0ecdd;border-radius:19px;padding:29px 33px;margin-bottom:17px;display:flex;align-items:center;justify-content:space-between;overflow:hidden}
.hero>div:first-child{max-width:460px;z-index:1}.hero h2{font-size:28px;line-height:1.35;margin:11px 0;font-weight:780;letter-spacing:-.7px}.hero p{font-size:12px;line-height:1.9;color:#668276;margin:0 0 17px}.hero-art{width:278px;height:190px;position:relative;flex-shrink:0}
.art-ring{position:absolute;inset:-25px 20px;border:1px solid #b0d0b5;border-radius:50%;transform:rotate(-28deg)}.art-core{position:absolute;width:176px;height:176px;left:52px;top:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(120deg,#b8d9ba,#77aa91);border-radius:50%;box-shadow:10px 15px 45px #8cbba165;transform:rotate(10deg)}.art-core span{display:block;color:#295747;font-size:19px;font-weight:800;letter-spacing:5px;line-height:1.65}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.stat,.panel{border:1px solid #e5ebe6;background:#fff;border-radius:16px;box-shadow:0 13px 31px #1d453607}.stat{padding:18px 19px}.stat>span{display:block;font-size:12px;color:#728780}.stat strong{display:block;font-size:31px;line-height:1.6;letter-spacing:-.6px;font-weight:750}.stat small{display:block;font-size:10px;color:#9aac9f}
.split{display:grid;grid-template-columns:1.06fr .94fr;gap:17px}.panel{padding:23px;margin-bottom:17px;min-width:0}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-title h3,.discussion h3{font-size:17px;font-weight:740;margin:3px 0}.text-button{border:0;background:none;color:#3c9476;font-size:11px;padding:5px}.discussion{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(100deg,#fff,#f1f7f2)}.discussion p{font-size:12px;color:#728981;margin:4px 0}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.chat-snippet{border-left:3px solid #b8d5bd;padding:1px 0 1px 12px;margin-bottom:15px}.chat-snippet.user{border-color:#d2b882}.snippet-meta,.message-meta{font-size:11px;font-weight:700;color:#438a73}.chat-snippet.user .snippet-meta{color:#a88753}
.snippet-meta small,.message-meta small{color:#93a39a;font-size:10px;font-weight:400;margin-left:9px}.tag{color:#518f78;background:#eaf3eb;font-size:10px;border-radius:5px;padding:1px 5px;margin-left:6px}
.chat-snippet p{margin:7px 0 0;color:#506b5e;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.observation{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid #ecf0ec}.observation:last-child{border:0}.obs-symbol{display:grid;place-items:center;border-radius:9px;background:#e8f3e9;color:#448866;width:29px;height:29px;flex:none;font-weight:700}.obs-symbol.hypothesis{background:#fff1da;color:#ae8443}.observation h4{font-size:12px;margin:0 0 3px}.observation p{font-size:11px;color:#82988a;margin:0}
.section-intro{margin:0 0 21px}.section-intro h2{font-size:25px;margin:0 0 5px}.section-intro p{color:#7a8b81;margin:0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#81948a;margin-bottom:15px}.toolbar input,.indicator select{border:1px solid #dce5dc;border-radius:8px;background:#fff;padding:9px;color:#37584c;font-size:12px;min-width:185px}.toolbar label,.indicator{font-size:12px}.toolbar span{font-size:11px}
.message{display:flex;align-items:flex-start;gap:12px;margin-bottom:19px}.message:last-child{margin-bottom:0}.avatar{width:36px;height:36px;background:#e7f1e8;color:#4c8066;border-radius:12px;font-weight:800;flex:none;display:grid;place-items:center}.message.user .avatar{background:#f4eedf;color:#ab874d}
.bubble{max-width:90%;background:#f1f6f1;padding:14px 17px;border-radius:0 12px 12px 12px}.message.user .bubble{background:#faf6ed}.bubble>div:last-child{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:5px}
.timeline{border-left:2px solid #bcd8c8;margin-left:12px;padding-left:25px}.timeline-entry{position:relative;border:1px solid #e2ebe3;background:white;border-radius:12px;padding:19px;margin:0 0 16px}
.timeline-entry:before{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:#72b08a;border:3px solid #eff8ef;left:-35px;top:22px}.timeline-entry.hypothesis:before{background:#dbb36e}.timeline-entry small,.record small{color:#8ba198;font-size:11px}.timeline-entry h3,.record h3{font-size:14px;margin:7px 0}.timeline-entry p,.record p{font-size:12px;color:#607b6d;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.record{padding:13px 0;border-bottom:1px solid #eef2ef}.record:last-child{border:0}.chart-region{min-height:230px;display:grid;place-items:center}.trend-chart{display:block;width:100%;height:auto;max-height:310px}.trend-chart text{font-size:11px;fill:#658b78}.empty{color:#94a99c;font-size:13px;text-align:center;padding:38px 10px}
footer{display:flex;justify-content:space-between;gap:14px;border-top:1px solid #e3eae3;font-size:10px;color:#9aa99e;padding:18px 0;margin-top:22px}
@media(max-width:1100px){.hero-art{width:180px}.stats{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}
@media(max-width:740px){.shell{display:block}.sidebar{position:static;height:auto;width:100%;padding:12px 15px}.brand{margin:0 0 10px}.brand-mark{width:34px;height:34px;font-size:17px}.brand strong{font-size:18px}.brand small{font-size:10px;margin-top:1px}.sidebar-label,.sidebar-foot{display:none}nav{display:flex;overflow-x:auto;scrollbar-width:none;gap:4px}.nav{white-space:nowrap;font-size:11px;padding:7px 10px}.nav span{font-size:13px;width:auto}.main{padding:22px 14px}.heading{gap:10px;align-items:flex-start}.heading h1{font-size:24px}.heading p{font-size:12px}.heading-actions{flex-direction:column;align-items:flex-end;gap:7px}.status{font-size:9px;padding:5px 8px}.hero{min-height:205px;padding:24px 20px}.hero h2{font-size:25px}.hero-art{display:none}.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:26px}.panel{padding:17px}.discussion{display:block}.discussion .actions{justify-content:flex-start;margin-top:15px}.toolbar input{min-width:120px;width:180px}footer{display:block}footer span{display:block;margin-bottom:5px}}


/* V0.2 record entry */
.record-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}
.record-tab{border:1px solid #dce7e0;background:#fff;color:#5b7569;padding:9px 14px;border-radius:999px;font-weight:650}
.record-tab.active{background:#24483b;color:#fff;border-color:#24483b}
.record-form{display:none}.record-form.active{display:block}
.form-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}
.form-head h3{margin:3px 0;font-size:18px}.form-head label,.form-grid label,.form-bottom label{font-size:11px;color:#6d8177;display:grid;gap:5px}
.helper{font-size:11px;color:#80948a;margin:-3px 0 15px}
input,select,textarea{width:100%;border:1px solid #dce6de;background:#fbfdfb;color:#2f5145;border-radius:8px;padding:9px 10px}
textarea{resize:vertical}.edit-access{display:flex;justify-content:space-between;align-items:center;gap:25px;background:linear-gradient(100deg,#fff,#f5f9f4)}
.edit-access h3{margin:3px 0}.edit-access p{font-size:11px;color:#82968c;margin:2px 0}.edit-key-box{display:flex;gap:8px;align-items:center;min-width:min(480px,55%)}.edit-key-box input{min-width:220px}
.subject-table-wrap{overflow-x:auto;margin:8px 0 13px;border:1px solid #e5ebe6;border-radius:12px}.subject-table{width:100%;border-collapse:collapse;min-width:980px;background:#fff}
.subject-table th{font-size:10px;letter-spacing:.2px;color:#789087;background:#f6f9f6;text-align:left;padding:8px;border-bottom:1px solid #e5ebe6;white-space:nowrap}
.subject-table td{padding:6px;border-bottom:1px solid #eef2ef;vertical-align:top}.subject-table tr:last-child td{border-bottom:0}
.subject-table input,.subject-table select{font-size:11px;padding:7px 8px;background:white}.subject-table .subject-name{min-width:74px}.subject-table .wide{min-width:185px}.subject-table .tiny{width:76px}
.icon-button{border:0;background:transparent;color:#9a6b5d;font-size:18px;padding:6px 8px;border-radius:8px}.icon-button:hover{background:#fbefeb}
.form-bottom{display:flex;gap:12px;align-items:end}.form-bottom .grow{flex:1}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.form-grid .span2{grid-column:span 2}.form-grid .span3{grid-column:span 3}.form-grid.compact{margin-bottom:13px}
.filters{display:flex;gap:8px;align-items:center}.filters select,.filters input{width:auto;min-width:120px;font-size:11px;padding:7px 8px}
.ledger{width:100%;border-collapse:collapse}.ledger th{font-size:10px;color:#789087;text-align:left;padding:8px;border-bottom:1px solid #dfe8df}.ledger td{font-size:11px;padding:11px 8px;border-bottom:1px solid #eef2ef;vertical-align:top}.ledger tr:last-child td{border-bottom:0}
.record-type{display:inline-flex;border-radius:6px;background:#edf5ef;color:#39765e;padding:2px 7px;font-size:10px;white-space:nowrap}.sync-chip{display:inline-flex;border-radius:999px;padding:2px 7px;font-size:9px;background:#e9f3ea;color:#317058}.sync-chip.pending{background:#fff1d9;color:#966921}
.record-summary{max-width:560px}.record-summary strong{display:block;font-size:11px;color:#38594c;margin-bottom:2px}.record-summary span{color:#70877b}
.record-detail{margin-top:7px}.record-detail summary{cursor:pointer;color:#4a9279;font-size:10px}.record-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9f7;border-radius:8px;padding:8px;font-family:inherit;color:#61796e}
.flash-ok{background:#e8f4e9!important;border-color:#c8e0cb!important;color:#2f7255!important}.flash-warn{background:#fff3dd!important;border-color:#ead3ab!important;color:#926421!important}.flash-error{background:#fdebea!important;border-color:#ecc5c0!important;color:#9b4a41!important}
.mini-record{padding:11px 0;border-bottom:1px solid #edf1ed}.mini-record:last-child{border:0}.mini-record h4{margin:0 0 3px;font-size:12px}.mini-record p{margin:0;color:#73897e;font-size:11px}
@media(max-width:850px){.edit-access{display:block}.edit-key-box{min-width:0;width:100%;margin-top:12px}.form-grid{grid-template-columns:1fr 1fr}.form-grid .span3{grid-column:span 2}.form-bottom{display:grid;grid-template-columns:1fr}.form-bottom .button{justify-self:start}.filters{flex-wrap:wrap}}
@media(max-width:600px){.edit-key-box{display:grid;grid-template-columns:1fr auto}.edit-key-box .text-button{grid-column:2}.form-grid{grid-template-columns:1fr}.form-grid .span2,.form-grid .span3{grid-column:span 1}.form-head{display:block}.form-head>label{margin-top:10px;max-width:190px}.filters{width:100%}.panel-title:has(.filters){display:block}.filters{margin-top:10px}.ledger{min-width:680px}.panel:has(.ledger){overflow-x:auto}}

.edit-key-area{min-width:min(520px,58%)}
.edit-key-saved{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.access-ok{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#e7f3e8;color:#2f7558;font-size:11px;font-weight:700;white-space:nowrap}
@media(max-width:850px){.edit-key-area{min-width:0;width:100%;margin-top:12px}.edit-key-saved{justify-content:flex-start}}


/* V0.3 information architecture */
.discussion-card,.record-card{width:100%;border:0;border-bottom:1px solid #edf1ed;background:transparent;text-align:left;padding:14px 2px;color:inherit;display:block}
.discussion-card:last-child,.record-card:last-child{border-bottom:0}
.discussion-card:hover,.record-card:hover{background:#f8fbf8}
.discussion-card h3,.record-card h3{margin:5px 0 7px;font-size:14px;color:#2d5044}
.discussion-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.discussion-card-head small,.record-card small{font-size:10px;color:#91a398}
.detail-link{font-size:10px;color:#3c9476;font-weight:650}
.discussion-card p,.record-card p{margin:0;color:#667f73;font-size:11px;white-space:pre-wrap}
.discussion-preview{margin-top:10px;padding-left:11px;border-left:3px solid #d8c391}
.discussion-preview.ai{border-color:#a8cfb2}
.discussion-preview strong{display:block;font-size:10px;color:#8b744b;margin-bottom:3px}
.discussion-preview.ai strong{color:#438a73}
.clamp-2,.clamp-4,.clamp-5{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.clamp-2{-webkit-line-clamp:2}
.clamp-4{-webkit-line-clamp:4}
.clamp-5{-webkit-line-clamp:5}
.pagination{display:flex;justify-content:center;align-items:center;gap:11px;padding-top:16px;margin-top:8px;border-top:1px solid #eef2ef}
.page-button{border:1px solid #dce7e0;background:#fff;color:#31564b;border-radius:8px;padding:7px 11px;font-size:10px}
.page-button:disabled{opacity:.38;cursor:default}
.page-info{font-size:10px;color:#81958a;min-width:120px;text-align:center}

.detail-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:17px}
.detail-head h2{font-size:26px;margin:4px 0 2px}
.detail-head p{margin:0;color:#809187;font-size:11px}
.detail-panel{max-width:1000px}
.detail-block{padding:4px 0 24px;margin-bottom:20px;border-bottom:1px solid #edf1ed}
.detail-block:last-child{border-bottom:0;margin-bottom:0}
.detail-block-title{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.detail-block h3{margin:0;font-size:17px}
.long-text{font-size:13px;color:#4d665b;line-height:1.9}
.long-text h4{font-size:14px;color:#2f5548;margin:20px 0 6px}
.long-text p{white-space:pre-wrap;margin:0 0 12px}
.progress-inline{display:inline-flex;margin-top:9px;padding:3px 8px;border-radius:999px;background:#edf5ef;color:#3c785f;font-size:10px}
.progress-history{display:grid;gap:8px;margin:12px 0 20px}
.progress-entry{border:1px solid #e5ebe6;background:#fafcf9;border-radius:10px;padding:11px 13px}
.progress-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.progress-entry-head strong{font-size:11px;color:#38584c}
.progress-entry p{font-size:11px;color:#73877d;margin:5px 0 0}
.progress-pill{padding:2px 8px;border-radius:999px;background:#e5f2e8;color:#307254;font-size:10px;font-weight:700}
.progress-form{margin-top:18px;padding:17px;border-radius:12px;background:#f5f9f5;border:1px solid #e0e9e1}
.progress-form h4{margin:0 0 12px;font-size:13px}

.metric-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:17px}
.metric-card{border:1px solid #e4ebe5;background:#fff;border-radius:13px;padding:14px 15px}
.metric-card small{display:block;color:#71877c;font-size:10px}
.metric-card strong{display:block;font-size:23px;line-height:1.5;color:#294e41}
.metric-card span{display:block;font-size:9px;color:#9aaca2}
.trend-controls{align-items:flex-start}
.trend-controls .filters label{display:flex;align-items:center;gap:6px;font-size:10px;color:#71877c}
.trend-controls .filters select{min-width:145px}

.compact-access{margin-top:17px}
.compact-access.saved{padding:10px 15px;border-radius:12px;display:flex;align-items:center}
.compact-access.saved>div:first-child{display:none}
.compact-access.saved .edit-key-area{width:100%;min-width:0}
.compact-access.saved .edit-key-saved{justify-content:flex-start}
.compact-access.saved .access-ok{background:transparent;padding:0;color:#34745b}
.compact-access.saved .button{padding:6px 10px;font-size:10px}
.compact-access.saved .text-button{font-size:10px}

@media(max-width:1050px){
  .metric-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .detail-head{display:block}.detail-head .button{margin-bottom:12px}
  .metric-cards{grid-template-columns:1fr 1fr}
  .trend-controls{display:block}.trend-controls .filters{margin-top:10px}
  .compact-access.saved{display:block}
}
@media(max-width:430px){
  .metric-cards{grid-template-columns:1fr}
  .pagination{gap:7px}.page-info{min-width:95px}
}
