:root{--bg: #f6f5fa;--panel: #ffffff;--fg: #1c1a24;--muted: #6d6880;--border: #e3e0ec;--accent: #5b21b6;--accent-soft: #f1ebfe;--danger: #d1373f;--ok: #2f9e44;font-family:-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-size:14px}a{color:var(--accent);text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:210px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:4px}.brand{font-weight:800;letter-spacing:.16em;font-size:15px;padding:0 8px 14px;color:var(--accent)}.navlink{padding:8px 10px;border-radius:8px;color:var(--fg);display:block}.navlink.active,.navlink:hover{background:var(--accent-soft);color:var(--accent)}.sidebar-footer{margin-top:auto;font-size:12px;color:var(--muted);padding:8px}.content{flex:1;padding:26px 32px;max-width:1100px}h1{font-size:20px;margin:0 0 18px}h2{font-size:15px;margin:22px 0 10px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:16px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px;border-bottom:1px solid var(--border)}td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--accent-soft)}button{font:inherit;padding:7px 14px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--fg);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}button.small{padding:4px 10px;font-size:12.5px}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--fg);width:100%}label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);margin-bottom:12px}.row{display:flex;gap:12px}.row>*{flex:1}.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:600}.chip.ok{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok)}.chip.bad{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.chip.muted{background:var(--accent-soft);color:var(--accent)}.chip.warn{background:color-mix(in srgb,#b7791f 12%,transparent);color:#b7791f}.login-wrap{display:grid;place-items:center;min-height:100vh}.login-card{width:340px}.error{color:var(--danger);font-size:12.5px;margin:8px 0 0}.hint{color:var(--muted);font-size:12.5px}.temp-pass{font-family:ui-monospace,monospace;font-size:15px;background:var(--accent-soft);padding:8px 12px;border-radius:8px;display:inline-block}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.check-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid var(--border, #e3e3e0);cursor:pointer}.check-row:last-of-type{border-bottom:none}.check-row input{margin-top:3px;flex-shrink:0}label.check-row{flex-direction:row;color:var(--fg)}.check-row input[type=checkbox],.check-row input[type=radio]{width:auto;padding:0}.check-row-hint{display:block;font-size:12px;opacity:.65}.form-rows label{margin-bottom:10px;max-width:460px}.form-rows .check-row{max-width:460px}details.collapse{padding:0}details.collapse>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;padding:14px 18px;-webkit-user-select:none;user-select:none}details.collapse>summary::-webkit-details-marker{display:none}details.collapse>summary:before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;flex-shrink:0;opacity:.55}details.collapse[open]>summary:before{transform:rotate(45deg)}.collapse-title{font-weight:600;font-size:14.5px}.collapse-summary{margin-left:auto;font-size:12px;opacity:.65;text-align:right}.collapse-body{padding:2px 18px 16px}.collapse-body>h2:first-child{margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f2373;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;z-index:60}.modal-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px 20px;width:100%;box-shadow:0 18px 50px #00000040}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-head h2{margin:0;font-size:17px}.modal-close{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:inherit;opacity:.55;padding:2px 6px}.modal-close:hover{opacity:1}.modal-card label{display:block;margin-bottom:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.tabs{display:flex;gap:4px;margin:12px 0 16px;border-bottom:1px solid var(--border, #ddd)}.tabs .tab{border:none;background:none;padding:8px 14px;cursor:pointer;border-bottom:2px solid transparent;font:inherit}.tabs .tab.active{border-bottom-color:#7c3aed;font-weight:600}.status{padding:2px 8px;border-radius:999px;font-size:12px;background:#eee}.status-running{background:#dcfce7;color:#166534}.status-staging,.status-provisioning{background:#fef9c3;color:#854d0e}.status-terminated,.status-stopping,.status-unknown{background:#fee2e2;color:#991b1b}.guide{line-height:1.7;margin:10px 0 10px 18px}.guide li{margin-bottom:8px}.card{border:1px solid var(--border, #ddd);border-radius:8px;padding:18px 22px;max-width:760px}a.button{display:inline-block;padding:8px 14px;border:1px solid #7c3aed;color:#7c3aed;border-radius:6px;text-decoration:none}a.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.check-list{list-style:none;padding:0;margin:12px 0 0}.check-list li{padding:7px 11px;border-radius:6px;margin-bottom:6px;font-size:13px}.check-list .check-ok,li.check-ok{background:#e6f4ee;color:#067647}.check-list .check-fail,li.check-fail{background:#fdecea;color:#b42318}.card.wide{max-width:100%;margin-bottom:16px}.filters{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.filters select{width:auto;min-width:150px}.filters input[type=text],.filters input:not([type]){width:auto;flex:1;min-width:200px}.filter-check{display:flex;flex-direction:row;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);white-space:nowrap}.filter-check input{width:auto}.ticket-table td{vertical-align:top}.ticket-title{font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:7px}.nowrap{white-space:nowrap}.unread-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.sev{border-left:3px solid var(--sev, transparent);padding-left:11px}.sev-none{--sev: var(--border)}.sev-low{--sev: #2f9e44}.sev-middle{--sev: #b7791f}.sev-high{--sev: #dd6b20}.sev-extreme{--sev: #b32b4d}.chip.status-new{background:var(--accent-soft);color:var(--accent)}.chip.status-in_progress{background:#e0f2fe;color:#075985}.chip.status-waiting_user{background:#fef9c3;color:#854d0e}.chip.status-resolved{background:#dcfce7;color:#166534}.chip.status-closed{background:#eeedf3;color:#5c5870}.chip.status-rejected{background:#fee2e2;color:#991b1b}.chip.prio-low{background:color-mix(in srgb,#2f9e44 12%,transparent);color:#2f9e44}.chip.prio-middle{background:color-mix(in srgb,#b7791f 14%,transparent);color:#b7791f}.chip.prio-high{background:color-mix(in srgb,#dd6b20 14%,transparent);color:#c2531d}.chip.prio-extreme{background:color-mix(in srgb,#b32b4d 14%,transparent);color:#b32b4d}.ticket-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.ticket-controls{display:flex;gap:18px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}.ticket-controls label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--muted)}.ticket-controls select{width:200px}.internal-tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#854d0e;background:#fef9c3;padding:1px 6px;border-radius:4px}.msg{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:10px}.msg-admin{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 20%,transparent)}.msg-internal{background:#fffbeb;border-color:#fde68a}.msg-head{display:flex;align-items:center;gap:9px;margin-bottom:6px}.msg-body{margin:0;white-space:pre-wrap;line-height:1.55}.thread-event{font-size:12.5px;color:var(--muted);margin:0 0 10px;padding-left:14px;border-left:2px solid var(--border)}.reply-box{border-top:1px solid var(--border);padding-top:14px;margin-top:4px}.reply-box textarea{font:inherit;width:100%;padding:10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--fg);resize:vertical;margin-bottom:10px}.log-block{border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.log-entries{margin-top:12px}.log-entries .thread-event:last-child{margin-bottom:0}tr.settled{opacity:.55}tr.settled .ticket-title{font-weight:500;text-decoration:line-through;text-decoration-color:var(--border)}tr.settled:hover{opacity:1}.attachments{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.attachment-image{display:flex;flex-direction:column;gap:4px;max-width:190px}.attachment-image img{width:100%;max-height:150px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}.attachment-file{display:flex;flex-direction:column;gap:2px;padding:9px 13px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--fg)}.attachment-file:hover{border-color:var(--accent)}.upload-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.upload-pick{display:inline-block;padding:6px 12px;border:1px dashed var(--border);border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--muted)}.upload-pick:hover{border-color:var(--accent);color:var(--accent)}.upload-pick input{display:none}.content:has(.page-wide){max-width:none;min-width:0}.view-switch{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2px}.view-switch button{border:none;background:none;padding:5px 14px;border-radius:6px;font-size:12.5px;color:var(--muted)}.view-switch button.on{background:var(--panel);color:var(--accent);font-weight:600;box-shadow:0 1px 2px #1c1a2414}.tickets-count{margin:-4px 0 14px}.due{font-size:11.5px;font-weight:600;white-space:nowrap;padding:2px 7px;border-radius:6px}.due-overdue{background:#fee2e2;color:#991b1b}.due-today{background:#fef3c7;color:#854d0e}.due-soon{background:#e0f2fe;color:#075985}.due-far{background:var(--bg);color:var(--muted)}.due-inputs{display:flex;gap:6px}.due-inputs input[type=date]{width:140px}.due-inputs input[type=time]{width:92px}.chip.untriaged{background:#eeedf3;color:#5c5870;border:1px dashed #c9c5d6;padding:1px 8px}.board{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:10px}.board-column{flex:0 0 268px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px;min-height:180px}.board-column.drop-target{border-color:var(--accent);background:var(--accent-soft)}.board-column-head{display:flex;align-items:center;gap:8px;padding:2px 4px 8px;border-bottom:2px solid var(--border)}.board-column-name{font-weight:700;font-size:12.5px}.board-column-count{margin-left:auto;font-size:11.5px;color:var(--muted)}.status-head-new{border-color:var(--accent)}.status-head-in_progress{border-color:#075985}.status-head-waiting_user{border-color:#b7791f}.status-head-resolved{border-color:#2f9e44}.status-head-closed{border-color:#b8b4c6}.status-head-rejected{border-color:#b32b4d}.lane-nudge{border:none;background:none;padding:0 3px;font-size:15px;line-height:1;color:var(--border);cursor:pointer}.lane-nudge:hover:not(:disabled){color:var(--accent)}.lane-nudge:disabled{opacity:.35;cursor:default}.board-column-head .board-column-name{border:none;background:none;padding:0;font:inherit;font-weight:700;font-size:12.5px;color:var(--fg);cursor:text;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-column-head .board-column-name:hover{color:var(--accent)}.lane-rename{padding:2px 6px;font-size:12.5px;font-weight:700;min-width:0}.board-column-maps{display:block;font-size:11px;color:var(--muted);padding:7px 4px 0}.board-add-lane{flex:0 0 190px;align-self:stretch;min-height:120px;border:1px dashed var(--border);border-radius:12px;background:none;color:var(--muted);font-size:12.5px}.board-add-lane:hover{border-color:var(--accent);color:var(--accent)}.board-column-untriaged{display:block;font-size:11px;color:#b32b4d;padding:7px 4px 0;font-weight:600}.board-column-cards{display:flex;flex-direction:column;gap:8px;padding-top:9px;max-height:calc(100vh - 320px);min-height:40px;overflow-y:auto}.board-column-empty{color:var(--border);text-align:center;padding:8px 0}.board-card{background:var(--panel);border:1px solid var(--border);border-radius:9px;border-left:3px solid var(--sev, var(--border));padding:9px 11px;cursor:grab;display:flex;flex-direction:column;gap:6px}.board-card:hover{border-color:var(--accent);border-left-color:var(--sev, var(--accent))}.board-card.dragging{opacity:.4}.board-card-top{display:flex;align-items:center;gap:6px;justify-content:space-between}.board-card-title{font-weight:600;line-height:1.35;display:flex;align-items:baseline;gap:6px}.ico{flex-shrink:0;opacity:.75;vertical-align:-1px}.card-meta{display:flex;flex-direction:column;gap:4px}.card-meta-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}.card-meta-line>.card-meta-row{min-width:0}.card-meta-row{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);min-width:0}.card-meta-row>:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta-row.assigned{color:var(--accent);font-weight:600}.card-meta-row.assigned .ico{opacity:1}.card-counts{display:flex;align-items:center;gap:11px;padding-top:5px;border-top:1px solid var(--border);margin-top:2px}.card-counts span{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.card-counts.inline{border-top:none;padding-top:0;margin-top:0;gap:10px}.card-counts .count-internal{color:#854d0e}.card-counts .count-internal .ico{opacity:1}.calendar{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}.calendar-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.calendar-month{font-weight:700;min-width:150px;text-transform:capitalize}.calendar-head .hint{margin-left:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekdays span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 4px 6px;text-align:center}.calendar-day{min-height:96px;border:1px solid var(--border);border-radius:8px;padding:5px;display:flex;flex-direction:column;gap:4px}.calendar-day.outside{background:var(--bg);opacity:.55}.calendar-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-day.drop-target{border-color:var(--accent);background:var(--accent-soft)}.calendar-daynum{font-size:11.5px;color:var(--muted);font-weight:600;padding-left:2px}.calendar-entry{display:flex;align-items:baseline;gap:5px;width:100%;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:6px;border-left:3px solid var(--sev, var(--border));padding:3px 6px;font-size:11.5px;cursor:grab;overflow:hidden}.calendar-entry:hover{border-color:var(--accent);border-left-color:var(--sev, var(--accent))}.calendar-entry.settled{opacity:.5;text-decoration:line-through}.calendar-time{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.calendar-entry-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-entry-wrap{position:relative;display:block}.entry-clear{position:absolute;top:50%;right:2px;transform:translateY(-50%);border:none;background:var(--panel);border-radius:4px;padding:0 4px;font-size:13px;line-height:1.3;color:var(--muted);cursor:pointer;display:none}.calendar-entry-wrap:hover .entry-clear{display:block}.entry-clear:hover{color:var(--danger)}.calendar-undated{border-top:1px solid var(--border);margin-top:14px;padding-top:12px;border-radius:8px}.calendar-undated.drop-target{border:1px dashed var(--accent);background:var(--accent-soft);padding:12px 10px}.calendar-undated-title{font-size:12px;color:var(--muted);font-weight:600}.calendar-undated-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.calendar-undated-list .calendar-entry{width:auto;max-width:230px}.assignee-picker{display:flex;flex-wrap:wrap;gap:6px}.assignee-toggle{padding:4px 11px;border:1px solid var(--border);border-radius:99px;background:var(--panel);font-size:12px;color:var(--muted)}.assignee-toggle:hover{border-color:var(--accent);color:var(--accent)}.assignee-toggle.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.dialog-row{display:flex;gap:12px}.dialog-row label{flex:1;min-width:0}.internal-block{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.internal-block-title{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-bottom:10px}.internal-block .ticket-controls{border-top:none;padding-top:0}.modal-card textarea{font:inherit;display:block;width:100%;margin-top:5px;resize:vertical;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--fg)}.portal-scope label.check-row{flex-direction:row;align-items:flex-start;color:var(--fg)}.portal-scope .check-row input[type=checkbox],.portal-scope .check-row input[type=radio]{width:auto;padding:0}.portal-form textarea{font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--fg);width:100%;resize:vertical}.pt-intro{max-width:760px;line-height:1.55;margin:0 0 14px}.pt-banner{max-width:760px;margin:0 0 14px;padding:8px 12px;border-radius:8px;font-size:12.5px;background:color-mix(in srgb,#b7791f 10%,transparent);color:#8a5a12}.pt-title{display:inline-flex;align-items:center;gap:8px}.pt-section{border-top:1px solid var(--border);padding:14px 0 6px}.pt-section:first-child{border-top:none;padding-top:6px}.pt-section h3{font-size:13.5px;margin:0 0 4px}.pt-section-hint{margin:0 0 10px;line-height:1.5}.pt-subtitle{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 2px}.pt-general{display:flex;align-items:flex-end;gap:14px}.pt-general label{flex:1;max-width:360px;margin-bottom:0}.pt-general .hint{padding-bottom:9px}.pt-general button{margin-left:auto;margin-bottom:4px}.pt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.pt-check{flex-direction:row;align-items:flex-start;gap:9px;margin:0;padding:6px 0;color:var(--fg);font-size:13px;cursor:pointer;border-bottom:1px solid var(--border)}.pt-check input{width:auto;margin-top:3px;flex-shrink:0}.pt-source{display:flex;gap:10px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--bg)}.pt-source-index{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11.5px;font-weight:700;display:grid;place-items:center;flex-shrink:0;margin-top:20px}.pt-source-fields{flex:1;min-width:0}.pt-source-fields label{margin-bottom:8px}.pt-source-row{display:flex;gap:10px}.pt-source-row>label{flex:1;min-width:0}.pt-source-row>.pt-grow-2{flex:2}.pt-label-row{display:flex;justify-content:space-between}.pt-source-tools{display:flex;flex-direction:column;gap:4px;margin-top:20px}.pt-source-tools button{padding:2px 9px}.pt-preset{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px}.pt-preset.on{border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 4%,transparent)}.pt-preset-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.pt-chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 8px}.pt-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:99px;font-size:11.5px;background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.pt-chip.off{background:var(--bg);color:var(--muted)}.pt-chip button{border:none;background:none;padding:0 2px;color:inherit;font-size:13px;line-height:1;cursor:pointer}.pt-add-domain{display:flex;gap:8px;align-items:center}.pt-add-domain input{flex:1}.pt-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--border);margin-top:10px;padding-top:12px}.pt-footer .error{margin:0}.pt-status-ok{color:var(--ok);font-size:12.5px}.pt-actions{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}@media(max-width:720px){.pt-grid{grid-template-columns:minmax(0,1fr)}.pt-source-row,.pt-general{flex-direction:column;align-items:stretch}}.pt-strict{flex-direction:row;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;color:var(--fg);font-size:13px;cursor:pointer}.pt-strict.on{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft)}.pt-strict input{width:auto;margin-top:3px;flex-shrink:0}.pt-strict .check-row-hint{margin-top:3px;line-height:1.5}.pt-warn{margin:-4px 0 12px;padding:7px 11px;border-radius:8px;font-size:12.5px;background:color-mix(in srgb,#b7791f 10%,transparent);color:#8a5a12}
