@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#243e3b;--muted:#7b8580;--paper:#f7f8f5;--line:#e4e9e2;--green:#235c4d;--accent:#dbe8be}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#fff;border-right:1px solid var(--line);padding:35px 22px;display:flex;flex-direction:column}.brand{font:800 31px Manrope,sans-serif;letter-spacing:-1.7px;display:flex;align-items:center;gap:12px}.brand-dot{color:#a3ba76;margin-left:-12px}.brand-icon{width:40px;height:42px;background:var(--green);color:#e2eccf;border-radius:12px;font:600 34px Georgia;text-align:center;position:relative;letter-spacing:-3px}.brand-icon span{font:18px Georgia;position:relative;top:-14px;left:1px}.workspace{font-size:9px;letter-spacing:1.6px;color:#9aa29b;margin:44px 10px 17px}nav a{padding:14px 12px;margin-bottom:7px;border-radius:7px;display:flex;align-items:center;gap:11px;font-size:12px;color:#71817a}nav a>span{font-size:19px}nav a.active{background:#edf2e8;color:#2b5545;font-weight:700}nav small{margin-left:auto;background:white;padding:3px 7px;border-radius:4px}.sidebar-bottom{margin-top:auto}.connection{font-size:11px;color:#778479;border:1px solid var(--line);padding:11px;border-radius:6px;display:flex;align-items:center;gap:8px}.connection i{width:6px;height:6px;background:#78a671;border-radius:50%}.sidebar-bottom>p{font:italic 15px Georgia;margin:22px 6px;color:#99a08f}.profile{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;gap:12px;font-size:12px}.profile>span{background:#e9eddf;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.profile small{display:block;font-size:10px;color:#8b948c;margin-top:3px}.shell{margin-left:248px}header{height:77px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;font-size:11px;color:#98a198}header span{padding:0 14px;color:#c8cec6}header b{font-weight:500;color:#53675d}.save-state{font-size:10px;color:#758772}main{padding:43px 44px 32px;min-height:calc(100vh - 132px);max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 32px}.eyebrow{font-size:9px;letter-spacing:1.9px;color:#79916b;font-weight:700}h1{font:600 32px Manrope,sans-serif;letter-spacing:-1.1px;margin:12px 0 10px}p{line-height:1.7;color:var(--muted);margin:0}h2{font:700 16px Manrope,sans-serif;margin:0 0 7px;letter-spacing:-.3px}h3{font:700 16px Manrope,sans-serif;margin:0 0 9px}.button{border:1px solid var(--green);background:var(--green);color:#fff;padding:12px 18px;border-radius:7px;font-size:11px;font-weight:600;display:inline-flex;justify-content:center;align-items:center;gap:7px;white-space:nowrap;transition:.15s}.button:hover{filter:brightness(.93);transform:translateY(-1px)}.button.secondary{background:white;color:#53665a;border-color:#dce3d8}.stats{display:grid;grid-template-columns:1fr 1fr 1.35fr 1.15fr;gap:16px;margin-bottom:34px}.stats>div{background:white;border:1px solid var(--line);border-radius:9px;padding:22px 23px;display:flex;flex-direction:column}.stats span{font-size:9px;letter-spacing:1px;color:#82907f}.stats strong{font:600 30px Manrope,sans-serif;letter-spacing:-1px;margin:17px 0 10px}.stats small{font-size:10px;color:#99a18f}.stats .rate-card{background:#edf1e5;border-color:#e0e6d6}.stats em{font:400 16px 'DM Sans',sans-serif;color:#83906d;letter-spacing:0}.stats small b{font-weight:600;color:#586b4c;margin-left:8px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-heading{padding:25px 25px;display:flex;align-items:center;justify-content:space-between;gap:18px}.panel-heading p{font-size:11px}.count{background:#edf1e7;border-radius:5px;padding:3px 6px;font:500 10px 'DM Sans';vertical-align:middle;margin-left:7px;color:#7b8a6c}.search{width:260px;background:#fafbf8!important;font-size:11px!important;margin:0!important}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}th{font-size:9px;letter-spacing:1px;color:#97a08f;font-weight:500;background:#fcfcfa;padding:15px 20px;border-block:1px solid var(--line)}td{padding:22px 20px;border-bottom:1px solid #eef0eb}tr:last-child td{border-bottom:0}.right{text-align:right}.project-link{display:flex;align-items:center;gap:13px;font-weight:600;font-size:12px}.project-link small{display:block;font-weight:400;font-size:10px;color:#97a18f;margin-top:6px}.project-icon{background:#f2f4ec;border:1px solid #e7ecdd;border-radius:8px;width:37px;height:40px;display:grid;place-items:center;font-size:25px;color:#8e9f76}.muted{color:var(--muted)}.badge{display:inline-block;font-size:10px;padding:6px 10px;border-radius:5px;background:#f7f1e3;color:#a18b52;white-space:nowrap}.badge.green{background:#eaf2e7;color:#63835a}.price{font-weight:600}.arrow{font-size:20px;color:#819070}.empty{padding:48px 25px 53px;text-align:center}.empty-icon{width:62px;height:62px;border:1px solid #dbe4cb;background:#f1f4e9;border-radius:18px;font:40px Georgia;display:grid;place-items:center;color:#9eb57b;margin:0 auto 22px}.empty p{font-size:12px;margin-bottom:22px}.bottom-note{margin:26px 0 15px;display:flex;align-items:center;gap:17px;padding:21px 24px;border:1px dashed #d9e0cf;border-radius:9px}.bottom-note>span{font:30px Georgia;color:#92a96b}.bottom-note b{font-size:11px;font-weight:500}.bottom-note p{font-size:10px;margin-top:4px}.bottom-note a{margin-left:auto;font-size:10px;color:#637e4d}footer{padding:17px 44px;display:flex;gap:18px;font-size:9px;letter-spacing:1.3px;color:#91a080;border-top:1px solid var(--line)}footer span{font-size:9px;letter-spacing:0;color:#a5ada0}footer span:last-child{margin-left:auto}.actions{display:flex;gap:10px;align-items:center}.back{display:inline-block;color:#7c8c75;font-size:11px;margin-bottom:25px}.project-meta{display:flex;align-items:center;gap:15px;margin:-10px 0 28px;color:var(--muted);font-size:12px}.project-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:start}.piece{border-top:1px solid var(--line);padding:25px}.piece-top{display:flex;align-items:center;justify-content:space-between;gap:18px}.piece-top .muted{font-size:11px}.piece-price{text-align:right}.piece-price b{font:700 24px Manrope}.piece-price small{display:block;font-size:9px;margin-top:4px;color:var(--muted)}.time-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:#f7f9f3;padding:16px;border-radius:7px;margin:22px 0 18px;font-size:10px;color:#7e8b75}.time-row b{display:block;margin-top:8px;font-size:14px;color:var(--ink);font-weight:500}.time-row i{font-style:normal;margin-right:4px}.hot{color:#c58a55}.cold{color:#80a4a5}.piece-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;color:#97a18f}.piece-bottom b{color:#5b6b56;margin-left:4px}.text-button{border:0;background:none;padding:7px;color:#608057;font-size:10px}.danger{color:#ac7e6b}.piece-notes{font-size:11px;margin-bottom:14px;white-space:pre-wrap}.summary{background:#edf1e4;border:1px solid #dce4d0;border-radius:10px;padding:25px;position:sticky;top:20px}.summary h2{margin:12px 0 25px}.summary-line{display:flex;justify-content:space-between;gap:10px;font-size:11px;margin:18px 0;color:#7a886c}.summary-line b{color:#536747;font-weight:500}.grand-total{border-top:1px solid #d7dfca;margin-top:25px;padding-top:22px}.grand-total span{font-size:11px;color:#7b8a6c}.grand-total strong{display:block;font:600 34px Manrope;margin:9px 0;letter-spacing:-1px}.summary p{font-size:10px;margin:12px 0 20px;color:#8a967d}.summary .button{width:100%;margin-bottom:10px}.summary>small{display:block;font-size:9px;color:#8d9982;line-height:1.7;margin-top:7px}.project-footer{margin-top:25px}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.template-card{border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden}.template-visual{height:150px;background:radial-gradient(ellipse at 50% 90%,#d5ddc9,transparent 60%),#eff2e9;position:relative;display:grid;place-items:center}.template-visual>span{display:block;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffffffc9,#bac7b15c 65%,#758e6b66);box-shadow:inset -7px -7px 20px #8b9c8b33,10px 17px 20px #8a9a7b33;border:1px solid #fefefe99;font-size:0}.template-visual small{position:absolute;bottom:12px;left:18px;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#819171}.template-body{padding:22px}.template-body>p{font-size:11px;min-height:40px}.template-times{display:flex;justify-content:space-between;margin:23px 0;font-size:9px;color:#99a18c}.template-times b{display:block;margin-top:7px;font-size:13px;font-weight:500;color:#536d4a}.info-note{padding:22px;background:#edf1e6;border:1px solid #e0e7d6;border-radius:8px;font-size:11px;color:#7a8a6b;line-height:1.8;margin-top:25px}.settings-panel{max-width:850px;padding:30px;margin-bottom:22px}.settings-panel>p{font-size:12px;margin-bottom:25px}.settings-panel form>.button{margin-top:22px}.formula{padding:18px;background:#f3f5ec;border-radius:7px;color:#71815f;font-size:12px;line-height:1.9;margin:22px 0 12px}.integration{border-top:1px solid var(--line);margin-top:28px;padding-top:22px;font-size:12px}.integration .badge{margin-left:15px}.integration p{margin-top:10px;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid.three{grid-template-columns:repeat(3,1fr)}label{display:block;font-size:11px;font-weight:500;color:#65755b;margin:17px 0}input,select,textarea{display:block;border:1px solid #dce3d6;border-radius:6px;background:#fff;padding:12px;color:var(--ink);font-size:13px;width:100%;margin-top:8px}textarea{min-height:75px;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #b6c99f;border-color:#88a36b}.check{display:flex;align-items:center;gap:9px;line-height:1.5}.check input{width:16px;height:16px;margin:0;accent-color:var(--green)}dialog{border:1px solid #d9e2cf;border-radius:14px;padding:30px;width:min(610px,calc(100% - 28px));max-height:92vh;overflow:auto;color:var(--ink);box-shadow:0 30px 100px #173a2733}dialog::backdrop{background:#223c335e;backdrop-filter:blur(3px)}dialog h2{font-size:23px;margin:14px 0 8px}dialog p{font-size:11px;margin-bottom:22px}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.live-result{display:flex;gap:20px;justify-content:space-between;background:#eef3e6;border-radius:7px;padding:18px;font-size:10px;color:#879774}.live-result b,.live-result strong{display:block;margin-top:7px;font-size:17px;color:var(--green)}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);max-width:90vw;background:#254c3e;color:white;padding:14px 23px;border-radius:9px;box-shadow:0 8px 30px #1c382933;opacity:0;pointer-events:none;transition:.2s;z-index:10}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){main{padding-top:55px}.stats>div{padding:26px}.stats strong{font-size:34px}}@media(max-width:1150px){.sidebar{width:210px;padding:28px 15px}.shell{margin-left:210px}main{padding:30px 25px}.stats{gap:10px}.stats>div{padding:18px 14px}.stats strong{font-size:24px}.project-layout{grid-template-columns:1fr}.summary{position:static;max-width:none}.catalog-grid{grid-template-columns:repeat(2,1fr)}.page-heading{align-items:flex-start}.time-row{gap:7px}header{padding:0 25px}footer{padding:17px 25px}}@media(max-width:750px){.sidebar{position:static;width:auto;padding:16px 20px;border-bottom:1px solid var(--line)}.brand{font-size:26px}.brand-icon{width:34px;height:35px;font-size:28px}.workspace,.sidebar-bottom{display:none}nav{display:flex;margin-top:17px;gap:7px}nav a{margin:0;padding:9px;font-size:10px}nav a>span{display:none}.shell{margin:0}header{height:48px;padding:0 20px}main{padding:28px 18px}h1{font-size:26px}.page-heading{flex-direction:column;gap:20px}.page-heading p{font-size:12px}.stats{grid-template-columns:1fr 1fr;margin-bottom:22px}.stats span{font-size:8px}.stats strong{font-size:26px}.panel-heading{padding:20px;flex-wrap:wrap}.search{width:100%}.bottom-note{padding:18px}.bottom-note a{display:none}.catalog-grid{grid-template-columns:1fr}.piece{padding:19px}.time-row{grid-template-columns:1fr 1fr;row-gap:18px}.piece-bottom{flex-wrap:wrap}.piece-price b{font-size:20px}.project-meta{align-items:flex-start}.form-grid.three{grid-template-columns:1fr}.form-grid{gap:12px}dialog{padding:22px}.settings-panel{padding:23px}footer{padding:17px 20px}footer span:last-child{display:none}.actions{flex-wrap:wrap}.live-result{gap:10px;padding:14px}.live-result strong,.live-result b{font-size:14px}}@media print{body{background:white;font-size:11px}.sidebar,header,footer,.actions,.back,.button,.text-button,.project-footer,#toast{display:none!important}.shell{margin:0}main{padding:0}.page-heading{margin-bottom:20px}.project-layout{display:block}.summary{position:static;background:white;break-inside:avoid;margin-top:20px}.piece{break-inside:avoid}.panel{border:0}.grand-total strong{font-size:26px}.summary>small{display:none}.time-row{background:#f7f7f7}.piece-price b{font-size:18px}}

.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 20px;background:radial-gradient(ellipse at 10% 15%,#e2e9d8,transparent 60%),#f7f8f5}.login-brand{font-size:10px;letter-spacing:3px;color:#5f7959;margin-bottom:28px}.login-page main.login-card{margin:0;padding:42px;min-height:0;width:100%;max-width:460px;border:1px solid #dce4d4;background:#fff;border-radius:14px;box-shadow:0 18px 70px #264b3210}.login-card h1{font-size:32px;line-height:1.3;margin:18px 0}.login-card p{font-size:12px}.login-card .button{width:100%;margin-top:16px}.login-card .login-help{font-size:10px;border-top:1px solid var(--line);margin-top:27px;padding-top:20px}.login-footer{font:italic 16px Georgia;margin-top:24px;color:#92a280}#login-error{color:#b5694c;margin-top:14px}
.catalog-overview{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-size:11px;color:#829078;margin:-7px 0 26px}.catalog-overview b{font-weight:700;color:#365b44;font-size:16px;margin-right:5px}.sync-note{margin-left:auto;font-size:10px}.catalog-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:18px;border-bottom:1px solid #dde5d4;padding-bottom:11px}.catalog-tabs button{background:transparent;border:0;border-radius:6px;padding:11px 15px;color:#7e8c74;font-size:11px}.catalog-tabs .selected{background:#e4ecd9;color:#315637;font-weight:700}.catalog-tabs span{font-size:9px;padding:3px 6px;background:#ffffffa8;border-radius:4px;margin-left:6px}.catalog-toolbar{display:flex;align-items:center;gap:14px;padding:18px;flex-wrap:wrap}.catalog-toolbar .search{width:300px}.catalog-toolbar select{width:230px;margin:0;font-size:11px}.draft-count{margin-left:auto;font-size:10px;color:#8c977f}.catalog-scroll{overflow:auto;max-height:66vh;border-top:1px solid var(--line)}.cost-sheet{min-width:1930px;font-variant-numeric:tabular-nums}.cost-sheet th{position:sticky;top:0;z-index:2;background:#f2f5eb;white-space:nowrap;font-size:8px;padding:15px 9px;line-height:1.8}.cost-sheet th small{font-size:8px;color:#8c987d;letter-spacing:0}.cost-sheet td{padding:9px 7px;height:65px;font-size:10px;background:#fff}.cost-sheet tbody tr:nth-child(even) td{background:#fcfdf9}.cost-sheet input{width:84px;font-size:11px;border:1px solid transparent;text-align:right;border-radius:3px;margin:0;padding:10px 5px;background:transparent;font-variant-numeric:tabular-nums}.cost-sheet input:hover{border-color:#dce6ce;background:#f7faf0}.cost-sheet input:focus{border-color:#91ae72;background:#f7fbe9;outline:1px solid #91ae72}.cost-sheet input::placeholder{color:#c0c8b8}.cost-sheet input::-webkit-inner-spin-button{display:none}.cost-sheet .ref-cell{position:sticky;left:0;min-width:175px;max-width:190px;z-index:1;box-shadow:2px 0 3px #23412307;padding:12px 13px}.cost-sheet th:first-child{left:0;z-index:3}.ref-cell>b{font-weight:600;display:block;overflow-wrap:anywhere;font-size:11px;color:#395c42}.ref-cell small,.name-cell small{display:block;color:#99a48c;font-size:9px;margin-top:5px;line-height:1.4}.name-cell{min-width:270px;max-width:320px}.name-cell>b{font-weight:500;line-height:1.4}.source-label{display:block;color:#ad9163;font-size:8px;margin-top:4px}.cost-sheet .calc-cell{background:#f2f5eb;font-weight:500;text-align:right;min-width:100px;white-space:nowrap;padding:12px}.cost-sheet .selling-cell{background:#eaf2e0;color:#315c3c;font-weight:700}.historical-cell{color:#9a9f91;text-align:right;white-space:nowrap}.cost-sheet tr.dirty td{background:#fffcee}.cost-sheet tr.dirty .selling-cell{background:#eff4d5}.catalog-pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-size:10px;color:#98a18e}.catalog-pagination>div{display:flex;gap:8px}.catalog-pagination .button{padding:8px 12px;font-size:10px}.catalog-formula{font-size:10px;line-height:1.9;padding:18px 0;color:#8a987b}.catalog-formula b{color:#657d53;font-weight:500}.catalog-warning{padding:15px 20px;background:#fff5df;color:#a07c43;border:1px solid #ecdfbe;border-radius:6px;margin-bottom:18px;font-size:12px}.link-details,.source-details{border:1px solid #e1e7d8;background:#fafbf6;border-radius:7px;padding:14px;margin:18px 0;font-size:11px}.link-details summary,.source-details summary{cursor:pointer;color:#6a8356}.source-details td{max-width:260px;overflow-wrap:anywhere;font-size:10px;padding:10px}.source-details p,.link-details p{margin-top:14px;margin-bottom:0}.catalog-panel .search{padding:11px 12px}.catalog-overview+ .catalog-warning{margin-top:0}@media(max-width:750px){.catalog-tabs button{padding:9px 10px;font-size:10px}.catalog-toolbar>*{width:100%!important}.catalog-toolbar .draft-count{margin:0}.catalog-overview{gap:14px}.sync-note{margin:0}.catalog-pagination{padding:15px 12px}.catalog-pagination .button{padding:7px 10px}.cost-sheet .ref-cell{min-width:135px;max-width:150px}.cost-sheet input{width:75px}.catalog-scroll{max-height:65vh}.catalog-formula{font-size:10px}}
