:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#20342e;background:#f3f5f1;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}body{margin:0}button:not([class*=univer-]),input:not([class*=univer-]),select:not([class*=univer-]){font:inherit}button:not([class*=univer-]){cursor:pointer;border:0;border-radius:8px;padding:.68rem .95rem;background:#176b55;color:#fff}button.quiet{background:#e5ece7;color:#315448}form input:not([class*=univer-]),form select:not([class*=univer-]),.ledger-filters select{width:100%;border:1px solid #ccd6d0;border-radius:8px;padding:.65rem;background:#fff}.gate{min-height:100vh;display:grid;place-items:center;padding:2rem}.gate section{width:min(430px,100%);background:#fff;padding:2.4rem;border-radius:16px;box-shadow:0 14px 40px #19352a16}.gate form,.modal{display:grid;gap:.8rem;margin-top:1.5rem}.eyebrow{color:#6a7e74;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .1rem}.error{color:#bd3e3e}.layout{height:100dvh;display:grid;grid-template-columns:220px minmax(0,1fr)}aside{background:#173a30;color:#fff;padding:1rem;overflow:auto}.brand{font-size:1.22rem;font-weight:700;margin:.2rem 0}.brand span{font-weight:400;color:#a5c7b9}.new{width:100%;margin:1rem 0;background:#e1a64d;color:#273328}.layout nav{display:grid;gap:.35rem}.layout nav button{text-align:left;background:transparent;color:#d5e5dc}.layout nav button.active{background:#2d6351}.layout nav small{display:block;opacity:.65;margin-top:.15rem}article{height:100dvh;padding:0;overflow:hidden;min-width:0}.project{position:relative;height:100dvh;max-width:none;display:grid;grid-template-rows:64px 38px minmax(0,1fr);gap:0}.project>header{padding:.6rem 1rem .25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.project h2{font-size:1.28rem;line-height:1.2}.project header p:last-child{display:none}.header-actions{display:flex;gap:.4rem}.header-actions button{padding:.46rem .65rem}h1,h2{margin:0 0 .18rem}.ledger-tabs{display:flex;align-items:center;gap:.45rem;margin:0;padding:0 1rem .35rem}.ledger-tabs button{background:#e5ece7;color:#315448;padding:.4rem .68rem}.ledger-tabs button.active{background:#176b55;color:#fff}.ledger-shell{min-height:0;height:auto;margin:0 .75rem .75rem;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #19352a12;display:flex;flex-direction:column}.ledger-toolbar{padding:.48rem .75rem;border-bottom:1px solid #dce5df;display:flex;justify-content:space-between;align-items:center;gap:.75rem;background:#fbfcfa}.ledger-toolbar strong,.ledger-toolbar small{display:block}.ledger-toolbar small{color:#6a7e74;margin-top:.1rem;font-size:.76rem}.ledger-filters{display:flex;align-items:center;gap:.35rem}.ledger-filters select{min-width:102px;padding:.34rem}.ledger-filters button{padding:.37rem .55rem;white-space:nowrap}.presence{white-space:nowrap;color:#176b55;font-size:.8rem}.univer-host{min-height:0;flex:1;position:relative}details{position:absolute;z-index:5;right:1rem;top:3.2rem;width:min(520px,calc(100vw - 250px));margin:0;padding:.45rem .65rem;background:#fff;border-radius:8px;box-shadow:0 7px 20px #19352a22}summary{cursor:pointer;font-weight:600;font-size:.86rem}.inline{display:flex;gap:.6rem;margin-top:.8rem}.inline input{min-width:150px}output{display:block;margin-top:.8rem;word-break:break-all;color:#176b55}dialog{border:0;padding:0;border-radius:14px;box-shadow:0 12px 50px #0004}dialog::backdrop{background:#12241d88}.modal{width:min(430px,calc(100vw - 1.5rem));min-width:0;padding:1.5rem}.modal div{display:flex;gap:.5rem}.empty{padding:4rem;text-align:center}.materials{position:fixed;z-index:20;top:0;right:0;width:min(430px,96vw);height:100vh;background:#fff;color:#20342e;box-shadow:-8px 0 28px #162f2440;padding:1.25rem;overflow:auto}.materials header{display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px solid #e1e8e3;padding-bottom:.9rem}.materials form{display:grid;gap:.7rem;margin:1rem 0}.materials form>label{display:grid;gap:.38rem;color:#496056;font-size:.84rem;font-weight:700}.materials .material-picker{position:relative;min-height:48px;display:flex;align-items:center;overflow:hidden;border:1px dashed #86ab9a;border-radius:9px;background:#f5faf6;color:#176b55;cursor:pointer}.materials .material-picker:hover{border-color:#176b55;background:#ebf6ee}.materials .material-picker input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;cursor:pointer}.materials .material-picker span{display:block;width:100%;padding:.76rem .85rem;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.materials button:disabled{cursor:not-allowed;opacity:.5}.materials ul{padding:0;list-style:none}.materials li{display:grid;gap:.18rem;padding:.8rem 0;border-bottom:1px solid #edf1ee}.materials li a{color:#176b55;text-decoration:none;font-weight:600;word-break:break-all}.materials li small,.hint{color:#6a7e74}@media (max-width: 760px){.layout{height:auto;min-height:100dvh;grid-template-columns:1fr}.layout aside{padding:.8rem}.layout nav{display:flex;overflow:auto}article{height:calc(100dvh - 145px);overflow:hidden}.project{height:100%;grid-template-rows:58px 36px minmax(0,1fr)}.project>header{padding:.5rem .7rem .15rem}.project h2{font-size:1.08rem}.ledger-tabs{padding-left:.7rem}.ledger-shell{margin:0 .45rem .45rem}.ledger-toolbar{align-items:stretch;flex-direction:column}.ledger-filters{flex-wrap:wrap}details{right:.7rem;top:3rem;width:calc(100vw - 1.4rem)}.inline{flex-direction:column}}.univer-host,.univer-host *,.univer-fixed,[data-u-context-menu-submenu]{color-scheme:light!important}[data-radix-popper-content-wrapper]{color:#1f2937!important}[data-slot=dropdown-menu-content],[data-slot=dropdown-menu-sub-content]{color:#1f2937!important;background:#fff!important}[data-slot=dropdown-menu-item],[data-slot=dropdown-menu-sub-trigger]{color:#1f2937!important;background:transparent!important}[data-slot=dropdown-menu-item]:hover,[data-slot=dropdown-menu-sub-trigger]:hover,[data-slot=dropdown-menu-item][data-highlighted],[data-slot=dropdown-menu-sub-trigger][data-highlighted]{color:#111827!important;background:#f3f4f6!important}.univer-text-gray-900 button,[data-u-context-menu-submenu] button{color:#1f2937!important;background:transparent!important}.univer-text-gray-900 button:disabled,[data-u-context-menu-submenu] button:disabled{color:#9ca3af!important}.univer-text-gray-900 button:hover:not(:disabled),[data-u-context-menu-submenu] button:hover:not(:disabled){background:#f3f4f6!important}button[class*=univer-],input[class*=univer-],[data-u-comp=input] input{color:#1f2937!important}button[class*=univer-]:disabled,input[class*=univer-]:disabled,[data-u-comp=input] input:disabled{color:#9ca3af!important}.univer-fixed button{color:#1f2937!important;background:transparent!important}.univer-fixed button:disabled{color:#9ca3af!important}.univer-fixed button:hover:not(:disabled){background:#f3f4f6!important}.material-count{min-width:2.8rem;padding:.35rem .5rem;border-radius:999px;background:#e5ece7;color:#315448;font-size:.8rem;text-align:center}.ledger-loading{min-height:55vh;display:grid;place-items:center;color:#315448;font-size:1rem}.project-layout{height:100dvh;display:grid;grid-template-columns:252px minmax(0,1fr);background:#edf3ef}.project-rail{position:relative;display:flex;flex-direction:column;min-width:0;padding:1.3rem 1rem 1rem;overflow:hidden;color:#fff;background:linear-gradient(160deg,#103e34,#173a30 45%,#0d2d26);box-shadow:7px 0 24px #0d2d261a}.project-rail:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;top:-124px;right:-130px;background:#62ae8c20;filter:blur(2px);pointer-events:none}.project-rail .brand{position:relative;margin:.2rem .25rem 2.25rem;font-size:1.32rem;letter-spacing:-.02em}.rail-title{position:relative;padding:0 .55rem .65rem;color:#b4d6c7;font-size:.7rem;font-weight:700;letter-spacing:.16em}.project-list{position:relative;display:grid;gap:.48rem;overflow-x:hidden;overflow-y:auto;padding:.15rem .1rem}.project-list button{position:relative;min-height:66px;padding:.8rem .9rem;border:1px solid transparent;border-radius:12px;text-align:left;background:transparent;color:#d9ebe2;transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}.project-list button:hover{transform:translate(3px);background:#ffffff12;border-color:#ffffff18}.project-list button.active{background:linear-gradient(135deg,#2f735d,#245b4b);border-color:#72b39755;color:#fff;box-shadow:0 8px 18px #071e1838;animation:project-select .32s ease-out}.project-list button.active:before{content:"";position:absolute;left:-1px;top:18px;width:3px;height:30px;border-radius:0 3px 3px 0;background:#f2ba5b}.project-list small{display:block;margin-top:.28rem;color:#a9c9bb;opacity:.78}.rail-new{margin-top:auto;border-radius:11px;box-shadow:0 8px 18px #071e1830;transition:transform .2s ease,box-shadow .2s ease}.rail-new:hover{transform:translateY(-2px);box-shadow:0 11px 22px #071e1844}.rail-settings{position:relative;display:flex;align-items:center;justify-content:center;gap:.48rem;width:100%;margin-top:.45rem;padding:.6rem .75rem;border:1px solid #ffffff18;border-radius:10px;color:#c9ded4;background:#ffffff0b;transition:background .18s ease,color .18s ease,transform .18s ease}.rail-settings:hover{transform:translateY(-1px);color:#fff;background:#ffffff18}.rail-settings span{font-size:1.05rem}.project-layout>article{min-width:0;overflow:hidden;background:radial-gradient(circle at 80% -20%,#cce5d833 0,transparent 35%),#f3f6f3}.project-center{position:relative;height:100dvh;display:grid;grid-template-rows:82px 49px minmax(0,1fr);animation:content-enter .36s ease-out}.project-header{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.35rem;background:#fbfdfbdf;border-bottom:1px solid #dfe9e2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.project-header h2{margin:0;font-size:1.42rem;letter-spacing:-.025em}.project-header .eyebrow{margin:0 0 .18rem;color:#558271;font-weight:700}.project-progress{margin:.22rem 0 0;color:#6a7e74;font-size:.82rem}.header-actions .quiet{border:1px solid #d7e4dc;background:#f4f8f5;transition:background .2s ease,transform .2s ease}.header-actions .quiet:hover{background:#e5f0e9;transform:translateY(-1px)}.project-menu{display:flex;align-items:end;gap:.38rem;padding:.52rem 1.35rem 0;overflow-x:auto;background:#fbfdfbd9;border-bottom:1px solid #dfe9e2}.project-menu button{position:relative;min-height:38px;padding:.48rem .88rem;border:1px solid transparent;border-radius:9px 9px 0 0;background:transparent;color:#597167;white-space:nowrap;transition:color .18s ease,background .18s ease,transform .18s ease}.project-menu button:hover{background:#eaf3ed;color:#176b55}.project-menu button.active{background:#176b55;color:#fff;box-shadow:0 -3px 12px #176b551a}.project-content{min-height:0;overflow:hidden}.project-content .ledger-shell{height:calc(100% - .8rem);margin:.4rem .75rem}.notice-center{height:100%;max-width:1080px;margin:0 auto;padding:1.55rem;overflow:auto}.notice-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1.3rem;border:1px solid #e2ece5;border-radius:16px;background:linear-gradient(135deg,#fff,#f3faf5);box-shadow:0 10px 26px #19352a0c;animation:card-enter .38s ease-out both}.notice-heading h3{margin:0;font-size:1.3rem}.notice-heading p:last-child{margin:.45rem 0 0;color:#6a7e74}.status-chip{padding:.38rem .68rem;border:1px solid #cfe1d5;border-radius:999px;background:#e8f5ed;color:#287154;font-size:.8rem;white-space:nowrap}.publish-notice{margin:1rem 0;padding:.9rem 1.05rem;border:1px solid #e4ece7;border-radius:12px;background:#fff;box-shadow:0 5px 16px #19352a08}.publish-notice summary{color:#176b55}.publish-notice form{display:grid;gap:.7rem;margin-top:.8rem}.publish-notice textarea{width:100%;padding:.65rem;resize:vertical;border:1px solid #ccd6d0;border-radius:8px;font:inherit}.publish-notice label{color:#53665d;font-size:.88rem}.publish-notice label input{width:auto}.publish-notice button{justify-self:start}.announcement-list{display:grid;gap:.8rem}.announcement{padding:1.05rem 1.18rem;border:1px solid #e5ede8;border-radius:13px;background:#fff;box-shadow:0 5px 16px #19352a08;transition:transform .2s ease,box-shadow .2s ease;animation:card-enter .38s ease-out both}.announcement:hover{transform:translateY(-2px);box-shadow:0 10px 23px #19352a12}.announcement header{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.announcement time{color:#788980;font-size:.78rem;white-space:nowrap}.announcement p{margin:.7rem 0 0;white-space:pre-wrap;line-height:1.65}.notice-empty{padding:3rem;text-align:center;color:#788980;border:1px dashed #ccd6d0;border-radius:11px}.project-tools{position:absolute;z-index:6;right:1rem;top:.9rem;width:min(520px,calc(100vw - 280px));padding:.4rem .65rem;border:1px solid #e2ece5;border-radius:9px;background:#fff;box-shadow:0 9px 24px #19352a1c}.settings-sheet{position:fixed;z-index:50;left:1rem;bottom:1rem;width:min(390px,calc(100vw - 2rem));overflow:hidden;color:#20342e;border:1px solid #dce8e0;border-radius:16px;background:#fffc;box-shadow:0 20px 48px #0a282055;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:settings-enter .22s ease-out}.settings-sheet>header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1rem .7rem;border-bottom:1px solid #dfe9e2}.settings-sheet>header strong{font-size:1.1rem}.settings-sheet>header .eyebrow{margin-bottom:.12rem}.settings-tabs{display:flex;gap:.3rem;padding:.65rem .85rem 0}.settings-tabs button{flex:1;padding:.5rem;border-radius:8px;color:#557167;background:#edf4ef}.settings-tabs button.active{color:#fff;background:#176b55}.settings-body{display:grid;gap:.8rem;padding:1rem}.settings-body>p{margin:0;color:#687f74;font-size:.86rem;line-height:1.55}.profile-form label{display:grid;gap:.32rem;color:#557167;font-size:.8rem;font-weight:700}.profile-form input{padding:.56rem .62rem;font-weight:400}.settings-note{margin:0;padding:.65rem;border-radius:8px;color:#7a6540;background:#fff5de;font-size:.8rem;line-height:1.5}.theme-options{display:grid;gap:.55rem}.theme-option{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:0 .6rem;padding:.65rem;text-align:left;color:#365348;border:1px solid #dce8e0;background:#fff}.theme-option i{grid-row:span 2;width:32px;height:32px;border-radius:9px;background:linear-gradient(140deg,#0f3c32 48%,#e5aa4b 49%)}.theme-option.paper i{background:linear-gradient(140deg,#f5ecdb 48%,#b98252 49%)}.theme-option.night i{background:linear-gradient(140deg,#17232d 48%,#55b8ac 49%)}.theme-option small{color:#789085}.theme-option.active{border-color:#339070;box-shadow:0 0 0 2px #33907022}.settings-sheet footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.75rem 1rem;border-top:1px solid #dfe9e2}.settings-sheet footer a{color:#176b55;font-size:.86rem;font-weight:700;text-decoration:none}.settings-sheet footer button{padding:.46rem .65rem}.settings-message{margin:0;padding:0 1rem .75rem;color:#287154;font-size:.82rem}html[data-ui-theme=paper] .project-layout{background:#e9e2d8}html[data-ui-theme=paper] .project-rail{background:linear-gradient(160deg,#534236,#3b3028)}html[data-ui-theme=paper] .project-layout>article{background:#f6f0e7}html[data-ui-theme=paper] .project-header,html[data-ui-theme=paper] .project-menu{background:#fffaf2e8}html[data-ui-theme=paper] .project-menu button.active,html[data-ui-theme=paper] .settings-tabs button.active{background:#8d6245}html[data-ui-theme=night] .project-layout{background:#111d25}html[data-ui-theme=night] .project-rail{background:linear-gradient(160deg,#132735,#0d1b25)}html[data-ui-theme=night] .project-layout>article{background:#17232d}html[data-ui-theme=night] .project-header,html[data-ui-theme=night] .project-menu{color:#e8f3ee;background:#1c2c38ed;border-color:#334956}html[data-ui-theme=night] .project-header .project-progress,html[data-ui-theme=night] .project-menu button{color:#afc6c1}html[data-ui-theme=night] .project-menu button.active,html[data-ui-theme=night] .settings-tabs button.active{background:#207e73}html[data-ui-theme=night] .notice-center,html[data-ui-theme=night] .settings-sheet{color:#e0ebe6}html[data-ui-theme=night] .notice-heading,html[data-ui-theme=night] .announcement,html[data-ui-theme=night] .publish-notice,html[data-ui-theme=night] .settings-sheet{border-color:#354b56;background:#20313bef}html[data-ui-theme=night] .settings-tabs button,html[data-ui-theme=night] .theme-option{color:#d6e4df;border-color:#354b56;background:#283b46}html[data-ui-theme=night] .settings-body>p,html[data-ui-theme=night] .profile-form label,html[data-ui-theme=night] .theme-option small{color:#a9c0bb}@keyframes settings-enter{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes content-enter{0%{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes project-select{0%{transform:translate(-4px);opacity:.55}to{transform:translate(0);opacity:1}}@keyframes card-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 760px){.project-layout{display:block}.project-rail{height:132px;padding:.7rem}.project-rail .brand{margin:0 0 .4rem}.rail-title{display:none}.project-list{display:flex;flex:1;overflow-x:auto;overflow-y:hidden}.project-list button{min-width:145px;min-height:50px}.rail-new{position:absolute;top:.7rem;right:.7rem;margin:0;width:auto}.project-center{height:calc(100dvh - 132px);grid-template-rows:71px 43px minmax(0,1fr)}.project-header{padding:.6rem .75rem}.project-header h2{font-size:1.15rem}.project-menu{padding-left:.75rem}.notice-center{padding:.75rem}.notice-heading{flex-direction:column;gap:.6rem}.project-tools{top:.7rem;right:.7rem;width:calc(100vw - 1.4rem)}.project-content .ledger-shell{margin:.35rem .45rem;height:calc(100% - .7rem)}.materials{width:100vw}.settings-sheet{left:.5rem;right:.5rem;bottom:.5rem;width:auto}}.ledger-body{display:flex;flex:1;min-height:0}.ledger-body .univer-host{flex:1;min-width:0}.group-sidebar{width:230px;min-width:180px;overflow-y:auto;border-right:1px solid #e2ece5;background:#f7faf8}.group-sidebar-header{display:flex;justify-content:space-between;align-items:baseline;padding:.75rem .85rem .5rem;border-bottom:1px solid #e5ede8}.group-sidebar-header strong{font-size:.92rem;color:#20342e}.group-sidebar-header small{color:#788980;font-size:.78rem}.group-list{list-style:none;margin:0;padding:.35rem}.group-list li{margin-bottom:2px}.group-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:.5rem .65rem;border:1px solid transparent;border-radius:8px;text-align:left;color:#365348;background:transparent;cursor:pointer;transition:background .15s,border-color .15s}.group-item:hover{background:#e8f5ed}.group-list li.active .group-item{border-color:#339070;background:#e0f2e7}.group-name{font-size:.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-meta{font-size:.75rem;color:#788980}.lt-loading{padding:4rem;text-align:center;color:#788980}.lt-scroll{flex:1;min-width:0;overflow:auto;outline:none}.lt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.86rem}.lt-table thead{position:sticky;top:0;z-index:3}.lt-table th{padding:.55rem .6rem;background:#f0f5f2;color:#3d5a4e;font-weight:700;font-size:.78rem;text-transform:none;letter-spacing:.02em;border-bottom:2px solid #d5e2da;white-space:nowrap;text-align:left;-webkit-user-select:none;user-select:none}.lt-table td{padding:.42rem .6rem;border-bottom:1px solid #e8efe9;color:#2c3e36;vertical-align:middle;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lt-table tbody tr{cursor:pointer;transition:background .12s}.lt-table tbody tr:hover{background:#f2f8f4}.lt-table tbody tr.lt-selected{background:#e0f0e7;box-shadow:inset 3px 0 #339070}.lt-row-num{width:42px;min-width:42px;text-align:center;color:#9aab9f;font-size:.76rem}.lt-sys{color:#788980;font-size:.8rem}.lt-record-id{font-family:ui-monospace,monospace;font-size:.76rem;max-width:120px}.lt-type-badge{display:inline-block;margin-left:4px;padding:1px 5px;border-radius:4px;background:#dbeee3;color:#2a7d5c;font-size:.68rem;font-weight:600;vertical-align:middle}.lt-att-header{background:#eaf4ee}.lt-cell{transition:background .1s}.lt-editable{cursor:text}.lt-editable:hover{background:#e6f4ed;outline:1px dashed #a3cdb8;outline-offset:-1px}.lt-readonly{color:#8a9b90}.lt-placeholder{color:#c0ccc4}.lt-tag{display:inline-block;padding:2px 8px;border-radius:5px;background:#e8f5ed;color:#287154;font-size:.78rem;font-weight:600}.lt-editing{padding:2px!important}.lt-editing input,.lt-editing select{width:100%;padding:.35rem .45rem;border:2px solid #339070;border-radius:6px;font:inherit;font-size:.84rem;outline:none;background:#fff}.lt-att-cell{text-align:center}.att-cell{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:3px 10px;border:1px solid #d5e2da;border-radius:6px;background:#f7faf8;color:#557167;font-size:.8rem;cursor:pointer;transition:all .15s}.att-cell:hover{border-color:#339070;background:#e6f4ed}.att-cell.has-files{border-color:#63a981;background:#e0f2e7;color:#176b55;font-weight:600}.att-empty{color:#b0c4b8;font-size:1rem}.lt-action-col{width:48px;min-width:48px;text-align:center}.lt-expand-btn{padding:3px 8px;border:1px solid #d5e2da;border-radius:6px;background:#fff;color:#557167;cursor:pointer;font-size:.9rem;transition:all .15s}.lt-expand-btn:hover{border-color:#339070;background:#e6f4ed}.lt-empty{text-align:center;padding:3rem!important;color:#9aab9f}.row-detail{width:340px;min-width:280px;overflow-y:auto;border-left:1px solid #e2ece5;background:#fafcfa;animation:rd-enter .2s ease-out}@keyframes rd-enter{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.rd-header{display:flex;justify-content:space-between;align-items:flex-start;padding:.85rem 1rem .65rem;border-bottom:1px solid #e5ede8}.rd-header strong{font-size:.82rem;font-family:ui-monospace,monospace;word-break:break-all}.rd-body{padding:.75rem 1rem}.rd-section{margin-bottom:1.2rem}.rd-section h4{margin:0 0 .6rem;font-size:.82rem;color:#557167;text-transform:uppercase;letter-spacing:.05em}.rd-fields{margin:0;display:grid;gap:.45rem}.rd-field{display:grid;grid-template-columns:80px 1fr;gap:.4rem;align-items:baseline}.rd-field dt{font-size:.78rem;color:#788980;font-weight:600}.rd-field dd{margin:0;font-size:.84rem;color:#2c3e36;word-break:break-all}.rd-att-group{margin-bottom:1rem}.rd-att-label{display:block;margin-bottom:.35rem;font-size:.82rem;font-weight:700;color:#3d5a4e}.rd-drop{border:2px dashed #c8d8ce;border-radius:10px;padding:.8rem;text-align:center;transition:all .15s;cursor:pointer}.rd-drop:hover,.rd-drop.drag-over{border-color:#339070;background:#e6f4ed}.rd-file-input{display:none}.rd-drop-hint{font-size:.8rem;color:#788980;cursor:pointer}.rd-att-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.3rem}.rd-att-list li{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.35rem .5rem;border-radius:6px;background:#f0f5f2}.rd-att-list a{color:#176b55;font-size:.82rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-att-list a:hover{text-decoration:underline}.rd-att-list small{color:#9aab9f;font-size:.72rem;white-space:nowrap}.lt-col-header{cursor:pointer;position:relative}.lt-col-header:hover{background:#e2ece5}.lt-col-type{display:inline-block;margin-left:4px;padding:0 4px;border-radius:3px;background:#dce8e0;color:#6b8f7e;font-size:.64rem;font-weight:600;vertical-align:middle}.lt-add-col{width:44px;min-width:44px;text-align:center;cursor:pointer;color:#9aab9f;font-size:1.1rem;transition:all .15s}.lt-add-col:hover{background:#e6f4ed;color:#339070}.lt-paste-hint{font-size:.82rem}.cc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0a282073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:cc-fade .15s ease-out}@keyframes cc-fade{0%{opacity:0}}.cc-dialog{width:min(420px,calc(100vw - 2rem));max-height:85vh;overflow-y:auto;border-radius:16px;background:#fff;box-shadow:0 24px 64px #0a28204d;animation:cc-pop .2s ease-out}@keyframes cc-pop{0%{transform:scale(.95) translateY(8px);opacity:0}}.cc-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem .7rem;border-bottom:1px solid #e5ede8}.cc-header strong{font-size:1rem;color:#20342e}.cc-body{padding:1rem 1.2rem;display:grid;gap:.85rem}.cc-field{display:grid;gap:.3rem}.cc-field>span{font-size:.78rem;font-weight:700;color:#557167}.cc-field input,.cc-field select,.cc-field textarea{padding:.55rem .65rem;border:1px solid #ccd6d0;border-radius:8px;font:inherit;font-size:.88rem;outline:none;transition:border-color .15s}.cc-field input:focus,.cc-field select:focus,.cc-field textarea:focus{border-color:#339070;box-shadow:0 0 0 2px #3390701f}.cc-field textarea{resize:vertical;font-family:ui-monospace,monospace;font-size:.82rem;line-height:1.6}.cc-error{margin:0;padding:.5rem .65rem;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem}.cc-footer{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.2rem 1rem;border-top:1px solid #e5ede8}.cc-actions{display:flex;gap:.5rem;margin-left:auto}.cc-delete{padding:.5rem .75rem;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:.82rem;cursor:pointer;transition:all .15s}.cc-delete:hover{background:#fee2e2;border-color:#ef4444}.lt-col-header{position:relative}.lt-col-label{display:inline-flex;align-items:center;gap:3px;cursor:default}.lt-col-actions{display:inline-flex;gap:2px;margin-left:4px;vertical-align:middle}.lt-filter-btn,.lt-gear-btn{padding:1px 4px;border:none;border-radius:4px;background:transparent;color:#9aab9f;cursor:pointer;font-size:.72rem;line-height:1;transition:all .12s}.lt-filter-btn:hover,.lt-gear-btn:hover{background:#d5e2da;color:#339070}.lt-filter-btn.active{color:#176b55;font-weight:700}.cf-menu{position:absolute;top:100%;left:0;z-index:20;min-width:180px;max-height:320px;overflow-y:auto;padding:.5rem;border:1px solid #d5e2da;border-radius:10px;background:#fff;box-shadow:0 12px 32px #0a28202e;animation:cc-fade .12s ease-out;text-align:left;font-weight:400}.cf-list{max-height:220px;overflow-y:auto;margin:.3rem 0}.cf-item{display:flex;align-items:center;gap:.4rem;padding:.3rem .35rem;border-radius:6px;font-size:.82rem;color:#2c3e36;cursor:pointer;white-space:nowrap}.cf-item:hover{background:#f0f5f2}.cf-item input{accent-color:#339070}.cf-actions{padding-top:.35rem;border-top:1px solid #e8efe9;text-align:right}.cf-actions button{padding:.3rem .7rem;font-size:.78rem}.cc-ref-list{display:grid;gap:.3rem;padding:.4rem 0}.cc-ref-item{display:flex;align-items:center;gap:.4rem;font-size:.84rem;color:#2c3e36;cursor:pointer}.cc-ref-item input{accent-color:#339070}.cc-ref-item small{color:#9aab9f}.cc-hint{margin:.2rem 0;font-size:.78rem;color:#9aab9f}@media (max-width: 760px){.ledger-toolbar{flex-direction:column;align-items:stretch;gap:.4rem;padding:.5rem .6rem}.ledger-filters{flex-wrap:wrap;gap:.3rem}.ledger-filters select{min-width:0;flex:1 1 40%;font-size:.82rem}.ledger-filters button{padding:.42rem .5rem;font-size:.8rem}.presence{margin-left:auto}.ledger-body{flex-direction:column}.group-sidebar{width:100%;min-width:0;max-height:92px;border-right:none;border-bottom:1px solid #e2ece5}.group-sidebar-header{padding:.4rem .6rem .25rem}.group-list{display:flex;overflow-x:auto;padding:.25rem .4rem .4rem;gap:.3rem}.group-list li{flex:0 0 auto;margin-bottom:0}.group-item{min-width:110px;padding:.4rem .55rem}.lt-table{font-size:.8rem}.lt-table th{padding:.45rem;font-size:.72rem}.lt-table td{padding:.38rem .45rem}.lt-row-num{width:34px;min-width:34px}.lt-action-col{width:40px;min-width:40px}.att-cell{min-width:42px;padding:2px 8px}.lt-col-actions{margin-left:2px}.lt-filter-btn,.lt-gear-btn{font-size:.8rem;padding:2px 5px}.cf-menu{position:fixed;left:.75rem;right:.75rem;top:auto;bottom:.75rem;min-width:0;max-height:60vh;box-shadow:0 -12px 40px #0a282047}.row-detail{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;width:100%;min-width:0;border-left:none;padding-bottom:var(--safe-bottom);animation:rd-mobile .22s ease-out}@keyframes rd-mobile{0%{transform:translateY(24px);opacity:0}}.rd-header{position:sticky;top:0;z-index:2;background:#fafcfa}.cc-dialog{width:calc(100vw - 1.25rem);max-height:90vh}.ledger-filters button,.lt-expand-btn{min-height:36px}}@media (max-width: 420px){.lt-table{font-size:.76rem}.lt-col-type{display:none}.ledger-filters select{flex:1 1 100%}.rd-field{grid-template-columns:70px 1fr}}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 20% 10%,#81be9e33,transparent 34%),#123a30}.auth-card{width:min(430px,100%);padding:2rem;border:1px solid #ffffff20;border-radius:18px;background:#fffffff2;box-shadow:0 22px 60px #031d1566}.auth-brand{margin:0 0 .7rem;color:#287154;font-weight:700;letter-spacing:.03em}.auth-card h1{margin:0;color:#193b31}.auth-hint{color:#62786d;line-height:1.55}.auth-card form,.admin-form{display:grid;gap:.7rem;margin-top:1.2rem}.auth-card button{margin-top:.3rem}.auth-error{color:#b83e3e;white-space:pre-wrap}.identity-lock{margin-top:1rem;padding:.65rem .8rem;border-radius:9px;color:#176b55;background:#e8f4ed;font-weight:700}.admin-page{min-height:100dvh;padding:1.5rem;background:#f1f5f2}.admin-page>header{display:flex;justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto}.admin-page h1{margin:0}.admin-back{text-decoration:none}.admin-tabs{display:flex;gap:.45rem;max-width:1180px;margin:1.2rem auto 0;overflow-x:auto}.admin-tabs button{background:#e2ebe5;color:#315448}.admin-tabs button.active{background:#176b55;color:#fff}.admin-section{max-width:1180px;margin:.8rem auto;padding:1.35rem;border:1px solid #dfe9e2;border-radius:14px;background:#fff;box-shadow:0 7px 22px #19352a0a}.admin-section h2{margin-top:0}.admin-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:start}.admin-form textarea{grid-column:1 / -1;width:100%;padding:.7rem;border:1px solid #ccd6d0;border-radius:8px;font:inherit}.admin-form button{align-self:end}.qr-result{display:flex;gap:1.25rem;align-items:center;margin:1rem 0;padding:1rem;border-radius:12px;background:#f3faf5}.qr-result code{display:block;max-width:460px;margin:.5rem 0;overflow-wrap:anywhere;color:#315448}.admin-list{display:grid;gap:.55rem}.admin-list article{display:flex;align-items:center;gap:.75rem;padding:.85rem;border:1px solid #e4ece7;border-radius:10px}.admin-list article>div{flex:1}.admin-list small{display:block;margin-top:.2rem;color:#6a7e74}.temporary-password{padding:.8rem;border-radius:9px;background:#fff4d9}.access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.8rem;margin:1rem 0}.access-grid article{display:grid;gap:.45rem;padding:.85rem;border:1px solid #e4ece7;border-radius:10px}.access-grid select{min-height:84px}.access-grid label{font-size:.86rem;color:#405b50}.access-grid input{width:auto}.template-form textarea{font-family:ui-monospace,Consolas,monospace}@media (max-width: 680px){.admin-page{padding:.8rem}.admin-list article{flex-wrap:wrap}.qr-result{align-items:flex-start;flex-direction:column}}.account-menu{position:fixed;z-index:30;right:1rem;bottom:1rem;display:flex;align-items:center;gap:.45rem;padding:.42rem .5rem .42rem .75rem;border:1px solid #dce7df;border-radius:999px;background:#fffffff2;box-shadow:0 8px 22px #173a3024;font-size:.82rem}.account-menu a{color:#176b55;font-weight:700;text-decoration:none}.account-menu button{padding:.38rem .55rem}.filer-shell .rail-new,.filer-shell .header-actions,.filer-shell .project-tools,.filer-shell .publish-notice{display:none}.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.online-dot.online{background:#22c55e;box-shadow:0 0 4px #22c55e88}.online-dot.offline{background:#cbd5e1}.audit-list article{flex-wrap:wrap}.audit-list time{color:#6a7e74;font-size:.82rem;white-space:nowrap}.audit-pager{display:flex;align-items:center;gap:.8rem;margin-top:.8rem;justify-content:center}.audit-pager span{color:#6a7e74;font-size:.86rem}
