:root{--primary:#1f4e78;--primary-dark:#163a5c;--bg:#f5f7fa;--card:#fff;--border:#e2e6ec;--text:#1f2937;--muted:#667;--tab-active-bg:#eaf1fb}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.app-shell{display:flex;flex-direction:column;min-height:100vh}.topbar{background:#fff;border-bottom:1px solid var(--border);padding:0 24px}.topbar-inner{display:flex;align-items:center;gap:24px;max-width:1200px;margin:0 auto;height:56px}.topbar h1{font-size:16px;color:var(--primary);margin:0;white-space:nowrap}nav.tabs{display:flex;gap:4px;flex:1 1;height:100%}nav.tabs a{display:inline-flex;align-items:center;padding:0 14px;height:100%;color:var(--text);font-size:14px;border-bottom:3px solid transparent;white-space:nowrap}nav.tabs a:hover{background:var(--bg)}nav.tabs a.active{border-bottom:3px solid var(--primary);background:var(--tab-active-bg);color:var(--primary);font-weight:600}.topbar .user{white-space:nowrap}.topbar .logout,.topbar .user{font-size:12px;color:var(--muted)}.topbar .logout{margin-left:8px;text-decoration:underline}.main{flex:1 1;padding:24px;max-width:1200px;width:100%;margin:0 auto}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3{color:var(--primary);margin:0 0 12px}.btn,.card h3{font-size:14px}.btn{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:8px 16px;cursor:pointer}.btn:hover{background:var(--primary-dark)}.btn-sm{background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:11px;padding:5px 10px;cursor:pointer}.btn-sm:hover{background:var(--primary-dark)}.btn-secondary{background:#fff;color:var(--primary);border:1px solid var(--primary)}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;width:100%}label{font-size:12px;color:var(--muted);display:block;margin-bottom:4px}.field-row{display:flex;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.icon-chip{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:#f0f4f3;text-align:center;font-size:16px}.hinge-card{display:flex;gap:8px;align-items:center;border-radius:12px;border-left:4px solid #a9c3de;background:#fff;padding:10px 12px;margin-bottom:8px}.hinge-card.tone-critical{border-left-color:#e0574a;background:#fff5f4}.hinge-card.tone-warning{border-left-color:#e0a02f;background:#fffaf0}.hinge-card.tone-good{border-left-color:#2fa365;background:#f3fbf6}.hinge-card.tone-neutral{border-left-color:#a9c3de;background:#fff}.hinge-section-box{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.hinge-section-header{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--primary);font-size:14px;margin:0 0 12px}.hinge-section-header .hinge-section-icon{font-size:15px}.tag{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--tab-active-bg);color:var(--primary);margin-right:6px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:#fff;padding:32px;border-radius:12px;border:1px solid var(--border);width:320px}.error{color:#b91c1c;font-size:13px;margin-top:8px}.consent-item{display:flex;align-items:center;gap:8px;border-left:3px solid var(--border);padding:8px 12px;margin-bottom:6px;border-radius:6px;background:#fff}.consent-item.consent-given{border-left-color:#2fa365}.consent-item.consent-notgiven{border-left-color:#e0574a}.consent-item.consent-unknown{border-left-color:#c7ceda}.consent-badge{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px}.consent-badge.consent-given{background:#e6f7ee;color:#2fa365}.consent-badge.consent-notgiven{background:#fdecea;color:#e0574a}.consent-badge.consent-unknown{background:#f0f2f5;color:#c7ceda}.pipeline-board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));grid-gap:12px;gap:12px;overflow-x:auto;align-items:start}.pcol{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px}.pcol-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:8px;padding:0 2px}.pcol-count,.pcol-header{font-weight:600;color:var(--primary)}.pcol-count{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:999px;background:var(--tab-active-bg)}.pcard{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px}.pcard-name{font-weight:600;font-size:13px;margin-bottom:2px}.pcard-meta{font-size:11px;color:var(--muted);margin-bottom:4px}.pcard-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.participant-header{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:4px}.back-link{font-size:13px;color:var(--muted);text-decoration:underline;white-space:nowrap}.subtabs{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--border);margin:12px 0 16px}.subtabs a{padding:10px 14px;font-size:13px;color:var(--text);white-space:nowrap;border-bottom:3px solid transparent}.subtabs a.active{border-bottom-color:var(--primary);background:var(--tab-active-bg);color:var(--primary);font-weight:600}.hinge-label{width:160px}.form-row{display:flex;gap:12px}.bottom-nav{display:none}.bottom-nav-item{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:6px 4px;font-size:11px;font-family:inherit;color:var(--muted);background:none;border:none;cursor:pointer}.bottom-nav-item.active{color:var(--primary);font-weight:600}.bottom-nav-item svg{width:22px;height:22px}.bottom-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:60}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;padding:8px 16px calc(16px + env(safe-area-inset-bottom, 0px));box-shadow:0 -4px 24px rgba(0,0,0,.15)}.bottom-sheet h4{margin:8px 0;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.bottom-sheet a{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 8px;font-size:15px;color:var(--text);border-bottom:1px solid var(--border)}.bottom-sheet a:last-child{border-bottom:none}.responsive-table{width:100%}@media (max-width:768px){nav.tabs{display:none}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);z-index:50}.main{padding:16px 16px calc(76px + env(safe-area-inset-bottom, 0px))}.topbar-inner{height:auto;min-height:52px;flex-wrap:wrap;padding:8px 0}.btn,.btn-secondary,.btn-sm{min-height:44px;padding-left:14px;padding-right:14px}input,select,textarea{min-height:44px}input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.field-row{flex-wrap:wrap}.field-row>input,.field-row>select{width:100%!important}.field-row>input.qty-input{width:80px!important;flex:0 0 auto}.form-row{flex-wrap:wrap}.form-row>*{width:100%!important;flex:1 1 100%!important}.hinge-card{flex-wrap:wrap}.hinge-label{width:100%!important}.hinge-card textarea{width:100%}.login-card{width:100%;max-width:340px}.pipeline-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:85vw;scroll-snap-type:x mandatory}.pcol{scroll-snap-align:start}}@media (max-width:640px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table td,.responsive-table tr{display:block;width:100%}.responsive-table tr{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:4px 10px}.responsive-table td{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border-bottom:none;padding:6px 0;text-align:right}.responsive-table td:before{content:attr(data-label);font-weight:600;color:var(--muted);font-size:11px;text-align:left;flex-shrink:0}}