:root{--ds-page: #f7f5f0;--ds-raised: #efece5;--ds-ink: #1c1a15;--ds-ink-2: #6b6558;--ds-ink-3: #a39c8d;--ds-hairline: #e0dcd2;--ds-teal: #0e7a6d;--ds-red: #b3261e;--ds-red-border: #e0a29d;--ds-font-display: Georgia, "Times New Roman", serif;--ds-font-text: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}html,body,#root{margin:0;min-height:100%}body{background:var(--ds-page);color:var(--ds-ink);font-family:var(--ds-font-text)}.splash-app{display:flex;flex-direction:column;gap:16px;max-width:880px;margin:0 auto;padding:20px 16px 60px}.appbar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.appbar-name{font-family:var(--ds-font-display);font-size:28px;letter-spacing:-.025em}.role-pill{font-size:12px;color:var(--ds-ink-2);border:1px solid var(--ds-hairline);border-radius:999px;padding:4px 10px;white-space:nowrap}.file-nav{display:flex;gap:4px;border-bottom:1px solid var(--ds-hairline);overflow-x:auto;scrollbar-width:none}.file-nav::-webkit-scrollbar{display:none}.file-nav a{padding:10px 12px;color:var(--ds-ink-2);text-decoration:none;white-space:nowrap;font-size:14px;border-radius:8px 8px 0 0}.file-nav a[aria-current=page]{color:var(--ds-ink);box-shadow:inset 0 -2px 0 var(--ds-ink);font-weight:600}@media (max-width: 600px){.file-nav a{display:inline-flex;align-items:center;min-height:44px}}.panel{border:1px solid var(--ds-hairline);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;background:#fff}.panel-title{font-weight:600;font-size:15px}.panel-sub{color:var(--ds-ink-2);font-size:13px}.panel-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px;cursor:pointer}.panel-link:hover .panel-title{text-decoration:underline}.list{display:flex;flex-direction:column}.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--ds-hairline);text-decoration:none;color:inherit}.list-row:last-child{border-bottom:none}.list-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.list-row-name{font-weight:600;font-size:14px}.list-row-detail{color:var(--ds-ink-2);font-size:13px}.list-row-end{display:flex;align-items:center;gap:8px;flex-shrink:0}.badge{font-size:12px;border-radius:999px;padding:3px 9px;border:1px solid var(--ds-hairline);color:var(--ds-ink-2);white-space:nowrap}.badge-ok{color:var(--ds-teal);border-color:var(--ds-teal);font-weight:600}.badge-warn{color:var(--ds-ink-2);background:var(--ds-raised);border-color:var(--ds-raised)}.badge-danger{color:var(--ds-red);border-color:var(--ds-red-border);font-weight:600}.att-row{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--ds-hairline)}.att-row:last-child{border-bottom:none}.att-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.att-name{font-weight:600;font-size:14px}.att-contact{color:var(--ds-ink-2);font-size:13px}.att-toggle{display:inline-flex;border:1px solid var(--ds-hairline);border-radius:999px;overflow:hidden}.att-toggle button{border:none;background:none;font:inherit;font-size:13px;padding:8px 16px;min-height:40px;cursor:pointer;color:var(--ds-ink-2)}.att-toggle button.on-present{background:var(--ds-ink);color:var(--ds-page);font-weight:600}.att-toggle button.on-absent{background:var(--ds-red);color:#fff;font-weight:600}.form-block{display:flex;flex-direction:column;gap:12px;border:1px solid var(--ds-hairline);border-radius:12px;padding:16px;background:#fff}.form-title{font-weight:600;font-size:14px}.form-note{color:var(--ds-ink-2);font-size:13px}.form-status{font-size:13px;color:var(--ds-teal);font-weight:600}.form-block input,.form-block select,.form-block textarea,.panel input,.panel select,.panel textarea,.signin input{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--ds-hairline);border-radius:8px;background:#fff;color:var(--ds-ink);width:100%;box-sizing:border-box}.form-block textarea{min-height:90px;resize:vertical}.btn{font:inherit;font-size:14px;font-weight:600;padding:10px 18px;min-height:44px;border-radius:8px;border:none;background:var(--ds-ink);color:var(--ds-page);cursor:pointer;align-self:flex-start}.btn:disabled{opacity:.4;cursor:default}.btn-quiet{background:none;border:1px solid var(--ds-hairline);color:var(--ds-ink-2)}.entry{border-left:2px solid var(--ds-hairline);padding:4px 0 4px 12px;display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.entry-meta{color:var(--ds-ink-2);font-size:12px}.entry-text{font-size:14px}.sec{display:flex;flex-direction:column;gap:12px}.sec-label{font-family:var(--ds-font-display);font-size:21px;letter-spacing:-.025em}.sec-label-small{font-weight:600;font-size:14px;color:var(--ds-ink-2)}.dots{display:flex;gap:6px;flex-wrap:wrap}.dot{width:12px;height:12px;border-radius:50%;background:var(--ds-teal)}.dot.off{background:var(--ds-raised);border:1px solid var(--ds-hairline)}.back-link{background:none;border:none;padding:0;font:inherit;font-size:14px;color:var(--ds-ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px;align-self:flex-start;min-height:32px}.two-col{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 768px){.two-col{grid-template-columns:1fr 1fr}}.kv{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--ds-hairline);font-size:14px}.kv:last-child{border-bottom:none}.kv .k{color:var(--ds-ink-2)}.kv .v{font-weight:600;text-align:right}.signin{max-width:400px;margin:80px auto;display:flex;flex-direction:column;gap:12px;padding:0 16px}.signin h1{font-family:var(--ds-font-display);font-size:32px;margin:0;letter-spacing:-.025em}.signin p{color:var(--ds-ink-2);font-size:14px;margin:0}.row-remove{background:none;border:none;padding:0;font:inherit;font-size:12px;color:var(--ds-ink-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:flex-start;min-height:32px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width: 768px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat{border:1px solid var(--ds-hairline);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;background:#fff}.stat-num{font-family:var(--ds-font-display);font-size:28px;letter-spacing:-.025em}.stat-label{color:var(--ds-ink-2);font-size:13px}.app-footer{text-align:center;color:var(--ds-ink-3, #888);font-size:12px;padding:18px 0 26px}.form-block input[type=checkbox]{width:auto;min-height:0;padding:0;margin:0;flex-shrink:0}
