:root { --ink:#132622; --muted:#63706c; --line:#dbe4df; --paper:#f7f8f4; --card:#fff; --teal:#0d665b; --teal-dark:#08473f; --gold:#d8a72d; --gold-pale:#fff4d5; --danger:#ad3f35; font-family:Manrope,system-ui,sans-serif; color:var(--ink); background:var(--paper); }
*{box-sizing:border-box} body{margin:0;min-height:100vh;background:linear-gradient(120deg,#f8faf7 0%,#edf4ee 100%)} button,input,textarea,select{font:inherit} button{cursor:pointer} .shell{max-width:1180px;margin:auto;padding:28px 32px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:22px}.brand{font:500 15px 'DM Mono',monospace;letter-spacing:.08em;color:var(--teal);text-decoration:none}.brand b{color:var(--gold)}.nav-right{display:flex;gap:12px;align-items:center}.lang{display:flex;gap:4px;font:12px 'DM Mono',monospace}.lang button{border:0;background:transparent;color:var(--muted);padding:6px}.lang button.active{color:var(--teal);font-weight:700}.logout{background:none;border:1px solid var(--line);border-radius:6px;padding:8px 12px;color:var(--ink);font-size:13px}.hero{padding:64px 0 38px}.eyebrow{font:500 12px 'DM Mono',monospace;color:var(--teal);letter-spacing:.08em;text-transform:uppercase}.hero h1{font-size:clamp(32px,5vw,56px);line-height:1.05;max-width:780px;margin:12px 0 14px;letter-spacing:-.045em}.hero p{max-width:600px;color:var(--muted);font-size:17px;line-height:1.6}.grid{display:grid;gap:18px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:25px;box-shadow:0 12px 34px rgba(19,38,34,.04)}.card.clickable{transition:.18s transform,.18s border;cursor:pointer}.card.clickable:hover{transform:translateY(-3px);border-color:#9fbbb4}.project-top,.section-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.project-name{font-size:20px;font-weight:700;letter-spacing:-.025em;margin:8px 0}.stage{display:inline-flex;align-items:center;gap:7px;font:12px 'DM Mono',monospace;color:var(--teal)}.dot{width:8px;height:8px;border-radius:50%;background:var(--gold);display:inline-block}.progress{height:5px;background:#e4ece7;border-radius:99px;margin:22px 0 14px}.progress span{height:100%;display:block;background:var(--teal);border-radius:99px}.subtle{color:var(--muted);font-size:14px;line-height:1.55}.empty{padding:42px;text-align:center;color:var(--muted);border:1px dashed #bfccc6;border-radius:14px}.detail{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr);gap:20px}.timeline{margin-top:20px;border-left:1px solid var(--line);padding-left:20px}.update{position:relative;padding:0 0 24px}.update:before{content:"";position:absolute;width:9px;height:9px;border:2px solid var(--teal);background:#fff;border-radius:50%;left:-26px;top:5px}.update h3{margin:0 0 4px;font-size:16px}.update time{font:11px 'DM Mono',monospace;color:var(--muted)}.update p{margin:9px 0 0;line-height:1.55;color:#40504b}.stage-track{display:flex;flex-wrap:wrap;gap:0;margin:26px 0}.stage-node{color:var(--muted);font-size:12px;display:flex;align-items:center}.stage-node:after{content:"";height:1px;width:28px;background:var(--line);margin:0 7px}.stage-node:last-child:after{display:none}.stage-node.active{color:var(--teal);font-weight:800}.stage-node.done{color:var(--ink)}.stage-node i{height:20px;width:20px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:11px;margin-right:6px}.stage-node.done i{background:var(--teal);border-color:var(--teal);color:white}.stage-node.active i{border:5px solid var(--gold);background:var(--teal)}.list{list-style:none;padding:0;margin:16px 0 0}.list li{padding:11px 0;border-bottom:1px solid #edf0ee;line-height:1.4}.list li:before{content:"→";color:var(--gold);font-weight:800;margin-right:10px}.action{border-left:4px solid var(--gold);background:var(--gold-pale);padding:18px;border-radius:0 8px 8px 0;margin-top:14px}.action strong{display:block;margin-bottom:5px}.button{border:0;border-radius:7px;background:var(--teal);color:white;padding:11px 15px;font-weight:700;font-size:14px}.button:hover{background:var(--teal-dark)}.button.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.admin-actions{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.stat{padding:16px;background:#e8f1eb;border-radius:9px}.stat b{display:block;font-size:27px;letter-spacing:-.05em}.stat span{font-size:12px;color:var(--muted)}dialog{border:0;border-radius:15px;padding:0;max-width:600px;width:calc(100% - 28px);box-shadow:0 24px 80px rgba(0,0,0,.22)}dialog::backdrop{background:rgba(8,34,29,.5)}.modal{padding:26px}.modal h2{margin:0 0 20px;letter-spacing:-.035em}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:7px;padding:11px;background:#fcfdfc;color:var(--ink);font-weight:500}.field textarea{min-height:90px;resize:vertical}.modal-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.notice{border-radius:7px;background:#f9e5e2;color:#85291f;padding:10px 12px;font-size:13px;margin:12px 0}.login-wrap{max-width:460px;margin:11vh auto;padding:28px}.login-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:34px;box-shadow:0 20px 50px rgba(11,49,41,.09)}.login-card h1{font-size:35px;letter-spacing:-.055em;margin:30px 0 8px}.login-card p{color:var(--muted);line-height:1.6}.login-card form{display:grid;gap:15px;margin-top:25px}.login-card .button{margin-top:4px}.setup-link{display:block;text-align:center;margin-top:18px;font-size:13px;color:var(--teal);background:none;border:0;width:100%}.hidden{display:none!important}@media(max-width:720px){.shell{padding:20px}.hero{padding-top:42px}.detail{grid-template-columns:1fr}.admin-summary{grid-template-columns:1fr}.stage-node:after{width:14px}.stage-node{font-size:10px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.topbar{align-items:flex-start}.nav-right{flex-direction:column;align-items:flex-end}}
