@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#19364d;background:#f5f8fa;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#163a59;color:#fff;padding:25px 17px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 9px 35px;font-family:Manrope,sans-serif;font-size:16px}.brand-mark{width:48px;height:48px;border-radius:15px;background:#139dd9;color:#fff;display:grid;place-items:center}.small-mark{width:34px;height:34px;border-radius:11px}.sidebar nav{display:grid;gap:7px}.sidebar nav a,.logout{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;color:#c7d5df;text-decoration:none;font-size:14px}.sidebar nav a.active,.sidebar nav a:hover{background:#244c6b;color:#fff}.logout{margin-top:auto;background:transparent;border:0;text-align:left}.main-content{margin-left:248px;padding:32px 42px;max-width:1600px}.topbar,.welcome-row,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar{padding-bottom:28px;border-bottom:1px solid #e3eaee}.topbar h1{font:800 27px Manrope;margin:5px 0 0}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#78909f}.user-chip{background:#fff;border:1px solid #e4ebef;padding:10px 14px;border-radius:30px;font-size:12px;color:#526a7a}.welcome-row{padding:29px 0}.welcome-row h2{font:700 20px Manrope;margin:0 0 5px}.muted{color:#8193a0}.welcome-row p,.panel-heading p{margin:0;font-size:13px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:12px 16px;background:#139dd9;color:#fff;font-weight:700;font-size:13px}.primary:disabled{opacity:.55;cursor:not-allowed}.full{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.stat-card,.panel{background:#fff;border:1px solid #e7edf1;border-radius:15px;box-shadow:0 3px 14px #17364b08}.stat-card{padding:18px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#6f8492;font-size:12px}.stat-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf6fb;color:#139dd9}.stat-card strong{display:block;font:800 27px Manrope;margin:13px 0 2px}.stat-card small{color:#91a0aa;font-size:11px}.panel{padding:22px}.panel-heading h3{font:700 17px Manrope;margin:0 0 5px}.tag{font-size:10px;color:#2786ac;background:#eaf6fb;padding:7px 10px;border-radius:20px}.empty-state{text-align:center;padding:52px 15px 45px}.empty-icon{width:54px;height:54px;border-radius:16px;background:#edf6fa;color:#139dd9;display:grid;place-items:center;margin:0 auto 13px}.empty-state h3{font:700 15px Manrope;margin:0 0 7px}.empty-state p{font-size:12px;margin:0}.footer-note{text-align:center;color:#a1afb8;font-size:11px;padding:28px}.mobile-nav{display:none}.login-shell,.setup-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(140deg,#f4f9fb,#eaf3f7)}.login-card,.setup-card{width:min(100%,410px);background:#fff;border:1px solid #e4edf1;border-radius:20px;padding:34px;box-shadow:0 15px 50px #163a5910}.login-card .brand-mark,.setup-card .brand-mark{margin-bottom:22px}.login-card h1,.setup-card h1{font:800 25px Manrope;margin:5px 0}.login-card>p{font-size:13px}.login-card label{display:grid;gap:7px;font-size:12px;font-weight:700;margin:19px 0;color:#496171}.login-card input{width:100%;border:1px solid #dce6eb;border-radius:9px;padding:12px;outline:none}.login-card input:focus{border-color:#139dd9;box-shadow:0 0 0 3px #139dd91a}.small{font-size:11px}.error{color:#bd3c3c}.loading{padding:60px;text-align:center;color:#718593}.setup-card p{font-size:13px;line-height:1.6}.setup-card code{background:#eef3f6;padding:2px 5px;border-radius:4px}@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-content{padding:27px}}@media(max-width:700px){.sidebar{display:none}.main-content{margin:0;padding:22px 16px 95px}.topbar{padding-bottom:20px}.topbar h1{font-size:23px}.user-chip{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-row{align-items:flex-start;flex-direction:column;padding:22px 0}.welcome-row .primary{width:100%}.stats-grid{gap:10px}.stat-card{padding:14px}.stat-card strong{font-size:23px}.stat-top{font-size:11px}.panel{padding:16px}.panel-heading{align-items:flex-start;flex-direction:column}.empty-state{padding:38px 8px}.mobile-nav{position:fixed;display:flex;inset:auto 0 0;background:#fff;border-top:1px solid #e5ecef;justify-content:space-around;padding:9px 3px calc(9px + env(safe-area-inset-bottom));z-index:5}.mobile-nav a{display:grid;justify-items:center;gap:4px;color:#7d909c;font-size:9px;text-decoration:none}.mobile-nav svg{width:19px;height:19px}.mobile-nav a.active{color:#139dd9}.footer-note{padding:20px 0}.login-card,.setup-card{padding:26px}}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:28px 0}.page-intro h2{font:700 20px Manrope;margin:0 0 5px}.page-intro p{font-size:13px;margin:0}.filter-tabs{display:flex;gap:7px;border-bottom:1px solid #e8eef1;padding-bottom:15px;margin-bottom:4px}.filter-tabs button{border:0;background:transparent;color:#758995;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:600}.filter-tabs button.selected{background:#eaf6fb;color:#138fc5}.inline-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:55px 12px;color:#8295a1;font-size:13px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.object-list{display:grid}.object-row{display:flex;align-items:center;gap:14px;padding:17px 4px;border-bottom:1px solid #edf1f3}.object-row:last-child{border-bottom:0}.object-symbol{width:42px;height:42px;border-radius:12px;background:#eaf6fb;color:#139dd9;display:grid;place-items:center;flex:none}.object-main{display:grid;gap:5px;min-width:0;flex:1}.object-main strong{font:700 14px Manrope;color:#19364d}.object-main span,.object-main small{font-size:12px;color:#82939e;display:flex;align-items:center;gap:4px}.object-main small{font-size:11px}.object-notes{white-space:pre-wrap}.status{font-size:10px;padding:6px 9px;border-radius:20px;white-space:nowrap;background:#eaf6ee;color:#33865b}.status-completed{background:#edf2f6;color:#627887}.status-archived{background:#f2f3f4;color:#7c858b}.object-actions{display:flex;gap:3px}.icon-button{border:0;background:transparent;color:#8295a1;border-radius:8px;padding:8px;display:grid;place-items:center}.icon-button:hover{background:#eef6f9;color:#138fc5}.panel-bottom-link{border-top:1px solid #edf1f3;padding-top:14px;margin-top:6px;text-align:right}.panel-bottom-link a{font-size:12px;color:#168fbe;text-decoration:none;font-weight:600}.empty-state .primary{margin-top:18px}.notice{display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:9px;font-size:12px}.error-notice{background:#fff2f1;color:#ad3933}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#102b3d80;display:grid;place-items:center;padding:18px;z-index:20}.modal-card{width:min(100%,520px);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:25px;box-shadow:0 20px 70px #102b3d35}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.modal-heading h2{font:800 21px Manrope;margin:5px 0 0}.modal-card label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#496171;margin:15px 0}.modal-card label b{color:#d05a4f;display:inline}.modal-card input,.modal-card textarea{width:100%;border:1px solid #dce6eb;border-radius:9px;padding:11px 12px;font:400 13px DM Sans,sans-serif;color:#19364d;outline:none;background:#fff}.modal-card textarea{resize:vertical}.modal-card input:focus,.modal-card textarea:focus{border-color:#139dd9;box-shadow:0 0 0 3px #139dd91a}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.secondary{border:1px solid #dce6eb;background:#fff;color:#526a7a;border-radius:9px;padding:11px 15px;font-size:13px;font-weight:600}.placeholder-panel{margin-top:28px}@media(max-width:700px){.page-intro{align-items:stretch;flex-direction:column;padding:22px 0}.page-intro .primary{width:100%}.object-row{align-items:flex-start;flex-wrap:wrap;gap:10px}.object-main{min-width:calc(100% - 58px)}.object-row .status{margin-left:52px}.object-actions{margin-left:auto}.modal-card{padding:20px}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.material-list{display:grid}.material-row{display:flex;align-items:center;gap:13px;padding:15px 3px;border-bottom:1px solid #edf1f3}.material-row:last-child{border-bottom:0}.material-price{font-size:12px;color:#29475c;white-space:nowrap}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-two label{min-width:0}.modal-card select,.material-select-row select,.material-select-row input,.journal-summary input{width:100%;border:1px solid #dce6eb;border-radius:9px;padding:11px 12px;font:400 13px DM Sans,sans-serif;color:#19364d;background:#fff;min-width:0}.check-label{display:flex!important;align-items:center;gap:9px!important;font-weight:500!important}.check-label input{width:16px;height:16px;accent-color:#139dd9}.text-button{border:0;background:transparent;color:#128fc4;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:7px}.text-button:disabled{opacity:.4}.materials-picker-heading{display:flex;justify-content:space-between;align-items:center;margin-top:17px;color:#29475c;font-size:13px}.material-select-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 34px;gap:7px;margin-top:9px;align-items:center}.journal-summary{display:flex;justify-content:space-between;align-items:center;background:#eaf6fb;border:1px solid #dceff7;border-radius:14px;padding:16px 20px;margin:4px 0 20px}.journal-summary>div{display:grid;gap:3px}.journal-summary>div span,.journal-summary small{font-size:11px;color:#6f8796}.journal-summary>div strong{font:800 24px Manrope;color:#193c56}.journal-summary label{display:flex;align-items:center;gap:9px;font-size:12px;color:#5c7484}.journal-summary input{width:auto;padding:8px}.entry-list{display:grid}.entry-card{display:flex;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid #edf1f3}.entry-card:last-child{border-bottom:0}.entry-date{width:47px;height:51px;border-radius:11px;background:#eef7fb;display:grid;align-content:center;justify-items:center;flex:none;color:#168fc1}.entry-date strong{font:800 19px Manrope}.entry-date span{font-size:10px;text-transform:uppercase}.entry-content{flex:1;min-width:0;display:grid;gap:4px}.entry-content>strong{font:700 13px Manrope;color:#19364d}.entry-content p{margin:0;font-size:12px;color:#738795;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-content small{font-size:10px;color:#91a0aa}.entry-hours{font-size:12px;font-weight:700;color:#244a63;white-space:nowrap}@media(max-width:700px){.form-two{grid-template-columns:1fr}.material-row{flex-wrap:wrap}.material-price{margin-left:55px}.material-row .object-actions{margin-left:auto}.journal-summary{align-items:flex-start;gap:12px;flex-direction:column}.journal-summary label{width:100%;justify-content:space-between}.journal-summary input{flex:1}.entry-card{gap:10px}.entry-content p{white-space:normal}.material-select-row{grid-template-columns:minmax(0,1fr) 75px 30px}}.object-row-link{text-decoration:none;color:inherit}.object-row-link:hover,.object-main-link:hover{background:#f8fbfc}.object-main-link{text-decoration:none;color:inherit;border-radius:8px;padding:3px;cursor:pointer}.open-object-hint{color:#139dd9!important;font-weight:600}.dashboard-error{margin-bottom:18px}.detail-back{padding:20px 0 4px}.detail-back a{font-size:12px;color:#168fbe;text-decoration:none;font-weight:600}.object-detail-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 0 25px}.object-detail-title{display:flex;align-items:center;gap:15px;min-width:0}.object-detail-title h2{font:800 23px Manrope;margin:4px 0;color:#19364d}.object-detail-title p{margin:0;font-size:13px}.large-symbol{width:54px;height:54px}.detail-stats{margin-bottom:22px}.object-notes-panel{margin-bottom:20px;padding:20px}.object-notes-panel p{font-size:13px;color:#6b7c85;white-space:pre-wrap;margin:8px 0 0}.detail-list-heading{align-items:flex-end}.month-filter{display:grid;gap:5px;font-size:11px;color:#7b8f9b;font-weight:600}.month-filter input{border:1px solid #dce6eb;border-radius:8px;padding:8px 10px;color:#37566b;font:12px DM Sans,sans-serif}.object-timeline{display:grid}.timeline-entry{display:flex;gap:16px;padding:20px 4px;border-bottom:1px solid #edf1f3}.timeline-entry:last-child{border-bottom:0}.timeline-date{width:48px;height:54px;border-radius:12px;background:#eaf6fb;color:#168fbe;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}.timeline-date strong{font:800 20px Manrope}.timeline-date span{font-size:9px;text-transform:capitalize}.timeline-body{flex:1;min-width:0}.timeline-entry-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.timeline-entry-top strong{font-size:13px;color:#23435a;text-transform:capitalize}.timeline-entry-top>span{font-size:12px;font-weight:700;color:#168fbe;white-space:nowrap}.timeline-body>p{font-size:13px;color:#687f8e;white-space:pre-wrap;margin:8px 0}.used-materials{margin-top:12px;padding:12px;background:#f8fbfc;border-radius:10px}.used-materials>strong{font-size:11px;color:#4c6677}.used-material-row{display:grid;grid-template-columns:1fr auto auto;gap:15px;padding:7px 0;border-bottom:1px solid #e8eef1;font-size:11px;color:#687f8e}.used-material-row span:last-child{font-weight:600;color:#405c70}.used-material-total{text-align:right;padding-top:9px;font-size:11px;font-weight:700;color:#23435a}@media(max-width:700px){.object-detail-header{align-items:stretch;flex-direction:column}.object-detail-header .primary{width:100%}.detail-list-heading{align-items:stretch;flex-direction:column}.month-filter{max-width:180px}.timeline-entry{gap:11px}.used-material-row{grid-template-columns:1fr auto;gap:5px}.used-material-row span:last-child{grid-column:2}.object-row.detailed{align-items:center}}.quantity-control{display:flex;align-items:center;gap:5px;flex:none}.quantity-control input{width:58px!important;text-align:center!important;padding:10px 3px!important;font-variant-numeric:tabular-nums}.quantity-step{width:42px;height:42px;display:grid;place-items:center;border:1px solid #dce6eb;background:#f8fbfc;color:#168fbe;border-radius:9px;cursor:pointer;touch-action:manipulation}.quantity-step:active{background:#e4f4fa}.quantity-step:disabled{opacity:.35;cursor:not-allowed}@media(max-width:700px){.material-select-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0}.material-select-row select{grid-column:1/-1;width:100%;min-width:0}.material-select-row .quantity-control{grid-column:1}.material-select-row>.icon-button{grid-column:2;grid-row:2;width:42px;height:42px}.quantity-step{width:48px;height:48px}.quantity-control input{width:62px!important;min-height:48px!important;font-size:16px!important}}.quantity-control{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0}.quantity-control input[type=number]{width:42px;min-width:42px;height:40px;padding:6px 2px;text-align:center;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.quantity-control input[type=number]::-webkit-inner-spin-button,.quantity-control input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.quantity-control input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.quantity-step{width:32px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dce6eb;border-radius:9px;background:#f8fbfc;color:#29475c;padding:0;cursor:pointer}.quantity-step:disabled{opacity:.4;cursor:not-allowed}.material-select-row{grid-template-columns:minmax(0,1fr) 116px 34px}@media(max-width:700px){.material-select-row{grid-template-columns:minmax(0,1fr) 116px 30px}}
