:root{--color-bg:#f4f5f1;--color-surface:#fff;--color-border:#dcdcd5;--color-text:#1f2420;--color-text-muted:#6b6f68;--color-primary:#3b6d11;--color-primary-dark:#27500a;--color-success-bg:#eaf3de;--color-success-text:#27500a;--color-warning-bg:#faeeda;--color-warning-text:#854f0b;--color-danger-bg:#fcebeb;--color-danger-text:#a32d2d;--color-neutral-bg:#f1efe8;--color-neutral-text:#5f5e5a}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--color-text-muted)}.page{max-width:960px;margin:0 auto;padding:0 1.25rem 3rem}.navbar{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 0;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}.navbar-title{font-size:18px;font-weight:600;margin:0}.navbar-subtitle{font-size:13px;color:var(--color-text-muted);margin:2px 0 0}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem}.auth-card{width:100%;max-width:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:2rem;display:flex;flex-direction:column;gap:8px}.auth-card h1{margin:0;font-size:22px}.muted{color:var(--color-text-muted);font-size:14px;margin:0 0 12px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.25rem}.card h2,.card h3{margin-top:0}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-bottom:1.5rem}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem 1.25rem;text-align:left;font-family:inherit;cursor:pointer;width:100%}.metric-card-active,.metric-card:hover{border-color:var(--color-primary)}.metric-card-active{box-shadow:0 0 0 1px var(--color-primary)}.metric-label{font-size:13px;color:var(--color-text-muted);margin:0 0 6px}.metric-value{font-size:26px;font-weight:600;margin:0}.tab-row{display:flex;gap:8px;margin-bottom:1rem;flex-wrap:wrap}.tab-btn{padding:.4rem .9rem;font-size:13px;font-weight:500;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;font-family:inherit}.tab-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.collab-row{display:grid;grid-template-columns:2.2fr 1.2fr 1fr 1fr .8fr;grid-gap:12px;gap:12px;align-items:center;padding:.85rem 1rem;border:1px solid var(--color-border);border-radius:10px;margin-bottom:8px;background:var(--color-surface);text-decoration:none;color:inherit}.collab-row:hover{border-color:var(--color-primary)}.collab-row-header{display:grid;grid-template-columns:2.2fr 1.2fr 1fr 1fr .8fr;grid-gap:12px;gap:12px;padding:0 1rem 6px;font-size:12px;color:var(--color-text-muted)}.collab-name{font-weight:500;margin:0}.collab-sub{font-size:12px;color:var(--color-text-muted);margin:2px 0 0}@media (max-width:640px){.collab-row,.collab-row-header{grid-template-columns:2fr 1fr 1fr}.collab-row-header>span:nth-child(4),.collab-row-header>span:nth-child(5),.collab-row>div:nth-child(4),.collab-row>div:nth-child(5){display:none}}.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:.6rem 0;border-top:1px solid var(--color-border);font-size:14px}.list-row:first-of-type{border-top:none}.list-row .left{display:flex;flex-direction:column;gap:2px}.list-row .actions{display:flex;gap:8px;align-items:center}label{font-size:13px;color:var(--color-text-muted);display:block;margin:0 0 4px}input,select,textarea{width:100%;font-size:14px;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary)}.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-top:.75rem}.form-field{flex:1 1;min-width:130px}.btn{display:inline-flex;align-items:center;gap:6px;padding:.55rem 1rem;font-size:14px;font-weight:500;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap}.btn:hover{background:var(--color-bg)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--color-bg)}.btn-sm{padding:.35rem .7rem;font-size:13px}.btn-danger-outline{color:var(--color-danger-text);border-color:var(--color-danger-bg)}.badge{display:inline-block;font-size:12px;font-weight:500;padding:2px 10px;border-radius:8px;white-space:nowrap}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge-neutral{background:var(--color-neutral-bg);color:var(--color-neutral-text)}.error{color:var(--color-danger-text);margin:4px 0 0}.empty,.error{font-size:13px}.empty{color:var(--color-text-muted);padding:.5rem 0}.section-title{margin:0 0 .75rem;font-size:16px;font-weight:600}.back-link{display:inline-block;margin-bottom:1rem;font-size:14px}.checkbox-row{display:flex;align-items:center;gap:8px;margin-top:.85rem}.checkbox-row input[type=checkbox]{width:auto}.checkbox-row label{margin:0;font-size:14px;color:var(--color-text);cursor:pointer}.subcard{border:1px solid var(--color-border);border-radius:10px;padding:.85rem 1rem;margin-bottom:.75rem;background:var(--color-bg)}.subcard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.subcard-header strong{font-size:14px}.subcard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:8px;gap:8px;font-size:13px;color:var(--color-text-muted)}