*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;color:#1f2937;background:#f6f7f9}a{color:#1d4ed8;text-decoration:none}a:hover{text-decoration:underline}.top{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#1f2937;color:#f9fafb}.top .brand{color:#f9fafb;font-weight:600}.user-box{display:flex;gap:12px;align-items:center;color:#d1d5db}.user-box .link{background:none;border:0;color:#60a5fa;cursor:pointer;padding:0;font:inherit}.content{max-width:960px;margin:0 auto;padding:24px}.muted{color:#6b7280}.error{color:#b91c1c}.card{background:#fff;border-radius:8px;border:1px solid #e5e7eb;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.02);margin-bottom:12px}.auth-shell{max-width:380px;margin:80px auto;padding:16px}.auth-shell form{display:flex;flex-direction:column;gap:12px}.auth-shell label{display:flex;flex-direction:column;gap:4px}.auth-shell input{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}button{background:#1d4ed8;color:#fff;border:0;padding:8px 14px;border-radius:6px;cursor:pointer;font-weight:500}button.secondary{background:#fff;color:#1f2937;border:1px solid #d1d5db}button.danger{background:#b91c1c}button:disabled{opacity:.5;cursor:not-allowed}.inbox-row{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;padding:12px 16px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;margin-bottom:8px}.inbox-row .who{font-weight:600;display:inline-flex;align-items:center;gap:8px}.inbox-row .preview{color:#4b5563;font-size:14px}.inbox-row .meta{color:#6b7280;font-size:12px;text-align:right}.status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:1.4}.badge-open{background:#fef3c7;color:#92400e}.badge-pending{background:#dbeafe;color:#1e40af}.badge-done{background:#e5e7eb;color:#4b5563}.badge-error{background:#fee2e2;color:#991b1b}.badge-muted{background:#f3f4f6;color:#9ca3af}.reviewed-draft .reviewed-body{margin-top:12px;border-top:1px solid #e5e7eb;padding-top:12px}.reviewed-draft .reviewed-body h3{margin:0 0 6px;font-size:13px;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.reviewed-draft .reviewed-body pre{white-space:pre-wrap;font-family:inherit;background:#f9fafb;padding:12px;border-radius:6px;margin:0;font-size:14px;line-height:1.5}.thread{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.msg{max-width:70%;padding:10px 12px;border-radius:12px;font-size:14px;line-height:1.4;white-space:pre-wrap}.msg.inbound{align-self:flex-start;background:#e5e7eb}.msg.outbound{align-self:flex-end;background:#dbeafe}.msg .when{display:block;font-size:11px;color:#6b7280;margin-top:4px}.draft-panel textarea{width:100%;min-height:160px;padding:10px;font:inherit;border:1px solid #d1d5db;border-radius:8px;resize:vertical}.actions{display:flex;gap:8px;margin-top:12px}.sources{font-size:13px}.sources details{margin-bottom:6px}.sources summary{cursor:pointer;font-weight:500}.sources pre{white-space:pre-wrap;font-family:inherit;background:#f3f4f6;padding:8px;border-radius:6px;margin:6px 0 0}.dns-shell{min-height:100vh;background:#0f172a;color:#f1f5f9}.dns-top{display:flex;justify-content:space-between;padding:14px 20px;background:linear-gradient(90deg,#1e3a8a,#3b82f6);font-weight:600;font-size:18px;box-shadow:0 2px 8px rgba(0,0,0,.3)}.dns-top,.dns-top .dns-brand{align-items:center;color:#fff}.dns-top .dns-brand{text-decoration:none;display:inline-flex;gap:10px}.dns-top .dns-brand:hover{text-decoration:none;opacity:.9}.dns-brand-icon{border-radius:6px;display:block}.dns-badge{background:rgba(0,0,0,.3);padding:2px 8px;border-radius:10px;font-size:10px;letter-spacing:1px;font-weight:700}.dns-content{max-width:560px;margin:0 auto;padding:20px 16px 80px;width:100%}.dns-content h2{color:#e2e8f0;margin-top:0}.dns-section{margin:24px 0 12px;font-size:14px;text-transform:uppercase;letter-spacing:1px;color:#94a3b8}.dns-empty{color:#94a3b8;font-style:italic}.dns-newchat{background:#1e293b;padding:16px;border-radius:12px;gap:10px;border:1px solid #334155}.dns-newchat,.dns-newchat label{display:flex;flex-direction:column}.dns-newchat label{gap:4px;font-size:13px;color:#cbd5e1}.dns-newchat input{padding:9px 12px;border-radius:8px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:14px}.dns-newchat input:focus{outline:2px solid #3b82f6;outline-offset:0;border-color:#3b82f6}.dns-newchat button{align-self:flex-start}.dns-chat-list{display:flex;flex-direction:column;gap:6px}.dns-chat-row{display:block;background:#1e293b;padding:12px 16px;border-radius:12px;color:#f1f5f9;text-decoration:none;border:1px solid transparent;transition:background .1s}.dns-chat-row:hover{background:#334155;text-decoration:none}.dns-chat-head{display:flex;justify-content:space-between;align-items:baseline}.dns-chat-head .peer{font-weight:600}.dns-chat-head .time{font-size:11px;color:#94a3b8}.dns-chat-row .last{font-size:13px;color:#94a3b8;margin-top:4px}.dns-back a{color:#93c5fd}.dns-thread-title{display:flex;flex-direction:column;margin:4px 0 14px}.dns-thread-title small{font-size:12px;color:#94a3b8;font-weight:400}.dns-thread{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;min-height:200px}.dns-msg{max-width:75%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.dns-msg.mine{align-self:flex-end;background:#2563eb;color:#fff;border-bottom-right-radius:4px}.dns-msg.theirs{align-self:flex-start;background:#334155;color:#f1f5f9;border-bottom-left-radius:4px}.dns-msg .when{display:block;font-size:10px;opacity:.65;margin-top:4px}.dns-send{display:flex;gap:8px;padding:12px 0;position:-webkit-sticky;position:sticky;bottom:0;background:#0f172a}.dns-send input{flex:1 1;padding:10px 14px;border-radius:20px;border:1px solid #334155;background:#1e293b;color:#f1f5f9;font-size:14px}.dns-send input:focus{outline:2px solid #3b82f6;border-color:#3b82f6}.dns-send button{border-radius:20px;padding:9px 18px}