:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;color:#202c39;background:#f6f8fb;font-synthesis:none;-webkit-font-smoothing:antialiased;--ink:#202c39;--sub:#788798;--line:#e7ecf1;--card:#fff;--blue:#2f5f83;--pale:#eaf2f8;--orange:#b77825;--red:#b94f42;--green:#3e816e;--shadow:0 12px 42px rgba(32,52,75,.045)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--blue)}svg{display:block;width:21px;height:21px;flex:none}button svg{pointer-events:none}.app-frame{display:flex;min-height:100vh}.sidebar{width:250px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:34px 18px 20px;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{display:flex;gap:11px;align-items:center;padding:0 13px 42px;font-size:23px;font-weight:750;letter-spacing:-1px}.brand-logo{width:37px;height:37px;border-radius:12px;background:#27485c;color:#fff;display:grid;place-items:center}.brand-logo svg{width:22px;height:22px}.brand-logo.tiny{width:29px;height:29px;border-radius:9px}.brand-logo.tiny svg{width:17px;height:17px}.nav-title{color:#a0aab4;font-size:10px;font-weight:800;letter-spacing:1.6px;padding:0 18px 15px}.side-nav{display:flex;flex-direction:column;gap:6px}.nav-link{width:100%;background:none;border:0;border-radius:11px;color:#6b7a89;font-weight:600;padding:13px 16px;display:flex;align-items:center;gap:14px;text-align:left;font-size:14px}.nav-link.active{background:#ecf2f6;color:#2b5572}.nav-link:hover:not(.active){background:#f6f8fa}.side-foot{margin-top:auto;display:flex;gap:11px;border:1px solid var(--line);border-radius:13px;padding:13px 10px;align-items:center}.side-foot-icon{color:var(--green);background:#eaf5f0;padding:8px;border-radius:10px}.side-foot strong,.side-foot small{display:block;font-size:12px}.side-foot small{font-size:11px;color:var(--sub);margin-top:3px}.main-shell{width:100%;min-width:0}.topbar{height:77px;background:rgba(255,255,255,.78);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 48px}.topbar-brand{display:none;align-items:center;gap:9px}.topbar-right{display:flex;gap:22px;align-items:center}.local-indicator{font-size:12px;font-weight:600;color:#697c86;display:flex;align-items:center;gap:7px}.local-indicator i{width:7px;height:7px;background:#74a38c;border-radius:50%}.icon-button{width:37px;height:37px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;color:var(--blue)}#app{max-width:1260px;padding:38px 48px 80px;margin:auto}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:30px}.eyebrow{font-size:11px;text-transform:uppercase;color:#8797a7;letter-spacing:1.65px;font-weight:750;margin:0 0 8px}.heading h1{margin:0;font-weight:750;font-size:32px;letter-spacing:-1.15px;line-height:1.18}.heading p{color:var(--sub);font-size:13px;margin:10px 0 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:11px;padding:12px 17px;font-size:13px;font-weight:700;line-height:1.25;text-decoration:none;white-space:nowrap}.btn svg{width:17px;height:17px}.btn-primary{background:#2b5674;color:#fff}.btn-primary:hover{background:#20445f}.btn-plain{background:#fff;border-color:#dfe6ec;color:#3d586c}.btn-plain:hover{background:#f8fafb}.btn-danger{color:#ae4b42;background:#fff;border-color:#e9cecc}.btn-sm{padding:9px 12px;font-size:12px;border-radius:9px}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:32px}.stat{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat-top{display:flex;align-items:center;justify-content:space-between}.stat-label{font-size:12px;color:#738394;font-weight:650}.stat-icon{width:35px;height:35px;border-radius:11px;background:#f0f5f8;display:grid;place-items:center;color:#54768c}.stat-icon svg{width:19px;height:19px}.stat-number{font-size:35px;font-weight:750;letter-spacing:-1.5px;margin:8px 0 2px}.stat-note{font-size:11px;color:#8a9aa7}.stat.warn .stat-icon{color:#bc7430;background:#fff5e7}.stat.danger .stat-icon{color:#b45347;background:#fff0ed}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.section-head h2{font-size:18px;letter-spacing:-.4px;margin:0;font-weight:750}.section-head p{color:var(--sub);font-size:12px;margin:5px 0 0}.link-button{background:none;border:0;color:var(--blue);font-weight:700;font-size:12px;display:inline-flex;align-items:center;gap:5px;padding:8px}.link-button svg{width:14px;height:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.attention-row,.list-row{display:flex;align-items:center;gap:14px;padding:15px 19px;border-bottom:1px solid #eef1f4}.attention-row:last-child,.list-row:last-child{border:0}.round-icon{width:41px;height:41px;flex:none;border-radius:12px;background:#f1f4f7;color:#59758a;display:grid;place-items:center}.round-icon.alert{background:#fff2e5;color:#b87834}.round-icon.overdue{background:#fff0ec;color:#bd5e50}.round-icon svg{width:19px;height:19px}.row-main{min-width:0;flex:1}.row-main strong{display:block;font-size:13px;font-weight:720}.row-main small{display:block;color:var(--sub);font-size:11px;margin-top:5px;line-height:1.35}.row-end{display:flex;align-items:center;gap:13px}.status{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:10px;line-height:1.2;font-weight:750;white-space:nowrap;background:#eff5f0;color:#49806a}.status.soon{background:#fff4e7;color:#ad7130}.status.overdue{background:#fff0ed;color:#b95345}.status.neutral{background:#f1f4f7;color:#677987}.status.small{font-size:10px}.section{margin-bottom:32px}.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.equipment-card{padding:0;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#fff;text-align:left;box-shadow:var(--shadow);color:inherit;min-width:0;transition:transform .12s,box-shadow .12s}.equipment-card:hover{transform:translateY(-2px);box-shadow:0 15px 35px rgba(31,60,82,.08)}.equipment-visual{height:147px;background:linear-gradient(138deg,#e7edf1,#dae6ea);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.equipment-visual img{width:100%;height:100%;object-fit:cover}.equipment-visual .placeholder-emoji{font-size:55px;filter:saturate(.55);opacity:.85}.equip-cat{position:absolute;top:12px;left:13px;background:#ffffffed;backdrop-filter:blur(6px);padding:6px 9px;border-radius:7px;color:#547184;font-size:10px;font-weight:700}.equip-body{padding:16px}.equip-title{font-size:15px;font-weight:750;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equip-subtitle{color:var(--sub);font-size:12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equip-bottom{border-top:1px solid #eef1f4;margin-top:17px;padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:7px}.meter{font-weight:750;font-size:14px}.meter small{font-weight:500;font-size:10px;color:#8b9aa6;margin-left:3px}.muted{color:var(--sub)}.empty{padding:46px 20px;text-align:center}.empty-icon{margin:0 auto 15px;width:61px;height:61px;border-radius:19px;background:#eef4f7;color:#547589;display:grid;place-items:center}.empty-icon svg{width:30px;height:30px}.empty h3{font-size:17px;margin:0 0 8px}.empty p{max-width:360px;margin:0 auto 18px;color:var(--sub);font-size:12px;line-height:1.6}.filter-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.search-box{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 12px;flex:1}.search-box svg{color:#8b9dac;width:17px;height:17px}.search-box input{width:100%;border:0;outline:0;background:transparent;padding:12px 0;font-size:13px}.filter-bar select,.form-control{border:1px solid #dfe6ec;background:#fff;border-radius:10px;padding:11px 12px;color:#2c3a47;outline:0;font-size:13px;width:100%}.filter-bar select{max-width:175px}.filter-bar select:focus,.form-control:focus,.search-box:focus-within{border-color:#6b9abd;box-shadow:0 0 0 3px #dcecf7}.segmented{display:flex;gap:4px;background:#eaf0f4;border-radius:11px;padding:4px;margin-bottom:17px;width:max-content;max-width:100%}.segmented button{border:0;background:transparent;color:#708091;border-radius:8px;padding:9px 15px;font-weight:700;font-size:12px}.segmented button.active{background:#fff;color:#2b526d;box-shadow:0 1px 5px #263c4816}.detail-hero{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px;display:flex;gap:25px;margin-bottom:20px}.detail-photo{width:228px;min-height:190px;background:linear-gradient(140deg,#e7eff3,#d3e1e8);border-radius:13px;overflow:hidden;display:grid;place-items:center;flex-shrink:0}.detail-photo img{width:100%;height:100%;max-height:220px;object-fit:cover}.detail-photo .placeholder-emoji{font-size:70px;filter:saturate(.6)}.detail-copy{flex:1;min-width:0}.detail-copy h2{font-size:24px;margin:3px 0 7px;letter-spacing:-.6px}.detail-kicker{color:var(--sub);font-size:12px}.detail-meter-row{display:flex;align-items:center;gap:25px;margin:22px 0}.detail-meter-row .large-meter{font-size:30px;letter-spacing:-1px;font-weight:750}.detail-meter-row .large-meter span{font-size:12px;color:var(--sub);font-weight:550;letter-spacing:0}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.two-col{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:20px}.panel-pad{padding:21px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.info-label{font-size:10px;color:#8b9baa;font-weight:650;margin-bottom:5px}.info-value{font-size:13px;font-weight:650;overflow-wrap:anywhere}.note-block{white-space:pre-wrap;line-height:1.55;color:#516577;font-size:12px}.small-list .list-row{padding:14px 17px}.history-amount{font-size:12px;font-weight:700;color:#536f7d;white-space:nowrap}.back{border:0;background:none;color:#5d7990;display:inline-flex;align-items:center;gap:5px;font-weight:650;font-size:12px;margin-bottom:16px;padding:0}.back svg{width:16px;height:16px}.setting-row{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.setting-row:last-child{border-bottom:0}.setting-row strong{font-size:13px;display:block;margin-bottom:5px}.setting-row p{font-size:11px;line-height:1.5;color:var(--sub);margin:0;max-width:520px}.notice{background:#eef4f7;border:1px solid #dce8f0;color:#43627a;border-radius:12px;padding:14px 16px;font-size:12px;line-height:1.6}.notice.warning{background:#fff6e8;border-color:#f3dfc0;color:#956b31}.section-label{font-size:10px;text-transform:uppercase;font-weight:750;color:#8f9ba7;letter-spacing:1px;margin-bottom:13px}dialog{width:min(92vw,550px);max-height:min(90dvh,850px);border:0;padding:0;border-radius:19px;box-shadow:0 30px 95px #1c2c3c4a;background:#fff;color:var(--ink);overflow:auto}dialog::backdrop{background:rgba(23,36,50,.47);backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:24px 26px 15px}.modal-head h2{font-size:21px;letter-spacing:-.6px;margin:0}.modal-head p{font-size:12px;color:var(--sub);margin:7px 0 0}.close-modal{width:31px;height:31px;border:0;background:#f1f4f6;color:#738392;border-radius:9px;display:grid;place-items:center}.close-modal svg{width:17px;height:17px}.modal-content{padding:8px 26px 22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.wide{grid-column:1/-1}.field label{font-size:11px;font-weight:750;color:#566b7b}.field .hint{color:var(--sub);font-size:10px;line-height:1.4}.field textarea{min-height:74px;resize:vertical}.file-control{width:100%;border:1px dashed #bdcfda;padding:13px;border-radius:11px;color:#63849a;font-size:12px;background:#f8fafb}.photo-preview{border-radius:12px;overflow:hidden;max-width:100%;height:130px;object-fit:cover;margin-top:8px}.modal-footer{display:flex;justify-content:space-between;gap:9px;padding:16px 26px 23px;border-top:1px solid var(--line)}.modal-footer .right{display:flex;gap:9px;margin-left:auto}.hint-line{font-size:11px;color:#8b99a7;margin-top:7px}.inline-icon{display:inline-flex;vertical-align:middle}.error-line{padding:9px 12px;color:#b24c43;background:#fff0ee;border-radius:9px;font-size:12px;margin-bottom:14px}#toast{position:fixed;bottom:102px;left:50%;transform:translate(-50%,25px);opacity:0;transition:all .18s;pointer-events:none;background:#2b3c49;color:white;border-radius:12px;padding:12px 17px;font-size:12px;font-weight:650;z-index:1000;box-shadow:0 10px 30px #1c2c3c33;white-space:nowrap;max-width:calc(100% - 40px);overflow:hidden;text-overflow:ellipsis}#toast.show{opacity:1;transform:translate(-50%,0)}.bottom-nav{display:none}.list-click{cursor:pointer}.list-click:hover{background:#fafcfd}.sep{color:#b3bdc5;margin:0 5px}.hidden{display:none!important}.mini-number{color:#637c8e;font-weight:700;font-size:11px}.date-text{font-size:11px;color:var(--sub)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-note{display:flex;gap:10px;align-items:flex-start}.side-note svg{color:#6185a0;flex-shrink:0}.field-check{display:flex;align-items:center;gap:8px;font-size:12px;color:#566b7b}
@media(max-width:1090px){.sidebar{width:205px}.topbar{padding:0 25px}#app{padding:33px 25px 80px}.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.app-frame{display:block}.sidebar{display:none}.main-shell{width:100%}.topbar{height:62px;padding:0 19px;justify-content:space-between}.topbar-brand{display:flex}.topbar-brand strong{font-size:17px;letter-spacing:-.5px}.desktop-add{display:none}.local-indicator{font-size:10px}#app{padding:27px 18px calc(110px + env(safe-area-inset-bottom))}.heading{margin-bottom:23px;align-items:center}.heading h1{font-size:28px}.heading p{font-size:12px}.heading .btn{font-size:0;width:42px;height:42px;padding:0;border-radius:12px;flex-shrink:0}.heading .btn svg{width:19px;height:19px}.stats{gap:9px;margin-bottom:27px}.stat{padding:14px 12px 16px;border-radius:13px}.stat-label{font-size:10px}.stat-icon{width:27px;height:27px;border-radius:8px}.stat-icon svg{width:16px;height:16px}.stat-number{font-size:28px;margin:11px 0 5px}.stat-note{font-size:10px}.section{margin-bottom:26px}.section-head h2{font-size:17px}.equipment-grid{gap:11px}.equipment-visual{height:108px}.equip-body{padding:12px}.equip-title{font-size:13px}.equip-subtitle{font-size:11px}.equip-bottom{margin-top:12px;padding-top:10px}.meter{font-size:12px}.equipment-card .status{font-size:9px;padding:5px 7px}.equip-cat{font-size:9px;top:8px;left:8px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;padding:9px 9px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(22px);border-top:1px solid #e7edf1;z-index:30;justify-content:space-around}.bottom-nav button{border:0;background:none;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;color:#9aa7b4;width:25%;padding:2px 0 5px}.bottom-nav button.active{color:#285a7b}.bottom-nav button svg{height:22px;width:22px}.bottom-nav button small{font-size:10px;font-weight:700}.attention-row,.list-row{padding:13px}.round-icon{height:36px;width:36px;border-radius:10px}.row-end{gap:7px}.row-end>.btn{padding:7px 9px}.detail-hero{flex-direction:column;padding:15px;gap:13px}.detail-photo{width:100%;min-height:185px;max-height:220px}.detail-copy{padding:3px 3px 5px}.detail-copy h2{font-size:22px}.detail-meter-row{margin:15px 0}.two-col{grid-template-columns:1fr}.filter-bar{flex-wrap:wrap}.filter-bar select{max-width:100%;width:100%}.modal-head{padding:20px 19px 12px}.modal-content{padding:8px 19px 17px}.modal-footer{padding:14px 19px calc(18px + env(safe-area-inset-bottom))}.segmented{width:100%}.segmented button{flex:1;padding:9px 8px}dialog{max-height:90dvh;width:calc(100vw - 22px)}.setting-row{padding:15px;align-items:flex-start}.setting-row>.btn{padding:9px 10px;font-size:11px}.panel-pad{padding:16px}}@media(max-width:370px){.equipment-grid{grid-template-columns:1fr}.equipment-visual{height:160px}.stats{gap:6px}.stat{padding:12px 9px}.stat-number{font-size:25px}.stat-label{font-size:9px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
