Änderungen von Dokument Prepare
Zuletzt geändert von Veronika Kocher am Freitag, 18 Sep. 2026 16:47
Von Version 1.3
bearbeitet von Veronika Kocher
am Dienstag, 01 Sep. 2026 17:10
am Dienstag, 01 Sep. 2026 17:10
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 1.11
bearbeitet von Veronika Kocher
am Freitag, 04 Sep. 2026 14:23
am Freitag, 04 Sep. 2026 14:23
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -378,7 +378,7 @@ 378 378 <li>Wie sollen Dateien und Ordner organisiert und benannt werden?</li> 379 379 <li>Wo werden Materialien gespeichert und gesichert?</li> 380 380 <li>Wer soll Zugriff haben?</li> 381 - <li>Welche Infrastruktur, Services und Werkzeugesind geeignet?</li>381 + <li>Welche Infrastruktur, Services und Tools sind geeignet?</li> 382 382 </ul> 383 383 </div> 384 384 </div> ... ... @@ -445,7 +445,7 @@ 445 445 <div class="arsn-area-head"> 446 446 <div class="arsn-area-label" style="background:#e6f3e9;color:#3f6d4b;"><span class="arsn-area-number">04</span> INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN <span class="arsn-area-action">· Vorbereiten</span></div> 447 447 <h4>Schaffe eine Arbeitsumgebung, die das Projekt tatsächlich nutzen kann</h4> 448 - <p>Lege fest, wo Projektmaterialien liegen, wie sie gesichert und geschützt werden, welche Werkzeugegeeignet sind und wie Zugriff und Zusammenarbeit funktionieren.</p>448 + <p>Lege fest, wo Projektmaterialien liegen, wie sie gesichert und geschützt werden, welche Tools geeignet sind und wie Zugriff und Zusammenarbeit funktionieren.</p> 449 449 </div> 450 450 <div class="arsn-area-body"> 451 451 <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Storage%2C%20Backup%20%26%20Security/" style="border-left:3px solid #38b76a;">Speicherung, Backup & Sicherheit</a> ... ... @@ -462,23 +462,1429 @@ 462 462 <a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/" class="btn btn-default" style="background:#fff7f1;border-color:#e4cabc;color:#493a34;">Weiter zu Arbeiten & Verwalten</a> 463 463 </section> 464 464 465 - <div style="margin:0 0 13px 0;"> 465 +<!-- ARSN_TRAINING_WORKSHOPS_INCLUDE_V1_START --> 466 +{{include reference="Service Navigator.Art & Research Services Navigator.Code.TrainingWorkshopsBlock" author="target" /}} 467 +<!-- ARSN_TRAINING_WORKSHOPS_INCLUDE_V1_END --> 468 + 469 +<div style="margin:0 0 13px 0;"> 466 466 <div class="arsn-eyebrow" style="color:#8a4d36;margin-bottom:4px;">NÜTZLICHE MATERIALIEN</div> 467 467 <h3 style="font-size:22px;margin:0 0 4px 0;color:#35312d;">Praktische Ressourcen</h3> 468 468 </div> 469 469 470 470 <div class="arsn-resource-grid" style="margin-bottom:27px;"> 471 - <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong style="color:#3a5d66;">Info-Blätter</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;"> DEMNÄCHST</span><div style="margin-top:5px;color:#625d56;">Kurze Orientierungshilfen für häufige Fragen und Entscheidungen.</div></div>472 - <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong style="color:#503a31;">Anleitungen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;"> DEMNÄCHST</span><div style="margin-top:5px;color:#625d56;">Schritt-für-Schritt-Anleitungen für konkrete Aufgaben und Abläufe.</div></div>473 - <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong style="color:#3f6b4b;">Checklisten & Vorlagen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;"> DEMNÄCHST</span><div style="margin-top:5px;color:#625d56;">Wiederverwendbare Hilfsmittel zum Planen, Dokumentieren und Überprüfen deiner Projektstruktur.</div></div>475 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong style="color:#3a5d66;">Info-Blätter</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span><div style="margin-top:5px;color:#625d56;">Kurze Orientierungshilfen für häufige Fragen und Entscheidungen.</div></div> 476 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong style="color:#503a31;">Anleitungen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span><div style="margin-top:5px;color:#625d56;">Schritt-für-Schritt-Anleitungen für konkrete Aufgaben und Abläufe.</div></div> 477 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong style="color:#3f6b4b;">Checklisten & Vorlagen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span><div style="margin-top:5px;color:#625d56;">Wiederverwendbare Hilfsmittel zum Planen, Dokumentieren und Überprüfen deiner Projektstruktur.</div></div> 474 474 </div> 475 475 476 - <aside style="margin:0 0 14px 0;padding:16px 18px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#e5f5f9;border-radius:8px;"> 477 - <strong style="color:#2d5661;">Brauchst du Unterstützung?</strong>478 - <div style="margin-top:5px;color:#365e68;line-height:1.5;"> Nichtsicher, welche Anforderungen,Servicesoder nächstenSchrittefürdeinProjektgelten?Kontaktiere Kunst&ForschungsservicesfürprojektspezifischeUnterstützung.</div>480 + <aside style="margin:0 0 14px 0;padding:16px 18px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#e5f5f9;border-radius:8px;"><!-- ARSN_PHASE_ROUTING_V1 --> 481 + <strong style="color:#2d5661;">Brauchst du Hilfe beim richtigen Weg?</strong> 482 + <div style="margin-top:5px;color:#365e68;line-height:1.5;"><strong>Starte bei Support Kunst und Forschung</strong> für Projektentwicklung, Förderung, Anträge und die Koordination geförderter Kunst-/Forschungsprojekte. Für Rechte, Daten, IT, Finanzen, Personal, Räume oder andere Fachfragen folge der auf der Themenseite genannten zuständigen Service-Stelle.</div> 479 479 </aside> 480 480 481 - <div class="arsn-tip"><strong>Tipp · Eine hilfreiche Faustregel:</strong> Plane früh, dokumentiere Entscheidungen und überprüfe sie, wenn sich das Projekt verändert. Ein einfache sSetup, dastatsächlich genutzt wird, ist meist wirksamer als ein komplexer Plan, der nie aktualisiert wird.</div>485 + <div class="arsn-tip"><strong>Tipp · Eine hilfreiche Faustregel:</strong> Plane früh, dokumentiere Entscheidungen und überprüfe sie, wenn sich das Projekt verändert. Eine einfache Projektstruktur, die tatsächlich genutzt wird, ist meist wirksamer als ein komplexer Plan, der nie aktualisiert wird.</div> 482 482 483 483 </div> 484 484 {{/html}} 489 + 490 +{{html clean="false"}} 491 +<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START --> 492 + 493 +<style data-sn-service-navigator-master="1"> 494 +/* ========================================================= 495 + MASTER TYPOGRAPHY 496 + ========================================================= */ 497 +#xwikicontent h1, 498 +#xwikicontent h2, 499 +#xwikicontent h3, 500 +#xwikicontent h4, 501 +#xwikicontent h5, 502 +#xwikicontent h6, 503 +#xwikicontent .box-title, 504 +#xwikicontent [role="heading"], 505 +#xwikicontent h1 a, 506 +#xwikicontent h2 a, 507 +#xwikicontent h3 a, 508 +#xwikicontent h4 a, 509 +#xwikicontent h5 a, 510 +#xwikicontent h6 a, 511 +#xwikicontent .box-title a, 512 +#xwikicontent [role="heading"] a{ 513 + text-align:left!important; 514 + text-justify:auto!important; 515 + word-spacing:normal!important; 516 +} 517 + 518 +/* ========================================================= 519 + COMING SOON / IN VORBEREITUNG 520 + ========================================================= */ 521 +.sn-coming-soon-badge{ 522 + display:inline-block; 523 + vertical-align:middle; 524 + margin-left:10px; 525 + padding:4px 8px; 526 + border-radius:14px; 527 + border:1px solid #efd9cc; 528 + background:#fff4ee; 529 + color:#8a4d36; 530 + font-size:11px; 531 + font-weight:700; 532 + letter-spacing:.055em; 533 + line-height:1.2; 534 + white-space:nowrap; 535 +} 536 + 537 +/* ========================================================= 538 + NATIVE / DETAIL CALLOUT GEOMETRY 539 + Preserve existing backgrounds. 540 + ========================================================= */ 541 +#xwikicontent .arsn-info, 542 +#xwikicontent .dmp-info, 543 +#xwikicontent .ido-info, 544 +#xwikicontent .pp-info, 545 +#xwikicontent .infomessage{ 546 + box-sizing:border-box!important; 547 + border-left:4px solid #21b6d7!important; 548 + border-radius:8px; 549 + text-align:left!important; 550 + word-spacing:normal!important; 551 +} 552 + 553 +#xwikicontent .arsn-warn, 554 +#xwikicontent .dmp-warn, 555 +#xwikicontent .ido-warn, 556 +#xwikicontent .pp-warn, 557 +#xwikicontent .warn, 558 +#xwikicontent .warning, 559 +#xwikicontent .warningmessage, 560 +#xwikicontent .errormessage{ 561 + box-sizing:border-box!important; 562 + border-left:4px solid #e94b13!important; 563 + border-radius:8px; 564 + text-align:left!important; 565 + word-spacing:normal!important; 566 +} 567 + 568 +[data-sn-master-equal-height], 569 +[data-sn-master-first-row]{ 570 + box-sizing:border-box; 571 +} 572 + 573 +/* ========================================================= 574 + FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS 575 + ========================================================= */ 576 +#xwikicontent .arsn-area-label[data-sn-three-line="1"]{ 577 + display:grid!important; 578 + grid-template-columns:minmax(0,1fr)!important; 579 + grid-auto-rows:auto!important; 580 + width:100%!important; 581 + max-width:none!important; 582 + box-sizing:border-box!important; 583 + justify-items:start!important; 584 + align-items:start!important; 585 + gap:2px!important; 586 + text-align:left!important; 587 + text-align-last:left!important; 588 + text-justify:auto!important; 589 + word-spacing:normal!important; 590 + white-space:normal!important; 591 +} 592 +#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number, 593 +#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title, 594 +#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{ 595 + display:block!important; 596 + width:100%!important; 597 + margin:0!important; 598 + text-align:left!important; 599 + text-align-last:left!important; 600 + text-justify:auto!important; 601 + word-spacing:normal!important; 602 + white-space:normal!important; 603 +} 604 +</style> 605 + 606 +<script data-sn-service-navigator-master="1"> 607 +(function(){ 608 + "use strict"; 609 + 610 + var PAGE_KIND="overview"; 611 + var PLACEHOLDER=false; 612 + var PLACEHOLDER_LABEL="IN VORBEREITUNG"; 613 + 614 + var MOBILE_MAX=767; 615 + var ROW_TOLERANCE=6; 616 + var RESIZE_DEBOUNCE=220; 617 + 618 + var root= 619 + document.getElementById("xwikicontent")|| 620 + document.querySelector(".xwiki-rendering-content")|| 621 + document.querySelector("main")|| 622 + document.body; 623 + 624 + if(!root)return; 625 + 626 + var managedHeight=new Set(); 627 + var managedMargin=new Set(); 628 + var originalHeight=new WeakMap(); 629 + var originalMargin=new WeakMap(); 630 + 631 + var resizeTimer=0; 632 + var running=false; 633 + 634 + var THEMES=[ 635 + { 636 + name:"BLUE", 637 + accent:"#21b6d7", 638 + bg:"#eaf7fb", 639 + text:"#315d68", 640 + labels:[ 641 + "HIER STARTEN", 642 + "ENTSCHEIDEN", 643 + "ÜBERPRÜFEN & ANPASSEN", 644 + "START HERE", 645 + "DECIDE", 646 + "REVIEW & ADAPT" 647 + ] 648 + }, 649 + { 650 + name:"RED", 651 + accent:"#e94b13", 652 + bg:"#fff1ec", 653 + text:"#8a4d36", 654 + labels:[ 655 + "PLANEN & ORGANISIEREN", 656 + "ORGANISIEREN & DOKUMENTIEREN", 657 + "PUBLIZIEREN & PRÄSENTIEREN", 658 + "PLAN & ORGANISE", 659 + "PLAN & ORGANIZE", 660 + "ORGANISE & DOCUMENT", 661 + "ORGANIZE & DOCUMENT", 662 + "PUBLISH & PRESENT" 663 + ] 664 + }, 665 + { 666 + name:"YELLOW", 667 + accent:"#f0aa00", 668 + bg:"#fff8e7", 669 + text:"#785b17", 670 + labels:[ 671 + "SCHÜTZEN & KLÄREN", 672 + "STANDARDISIEREN & IDENTIFIZIEREN", 673 + "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN", 674 + "PROTECT & CLARIFY", 675 + "STANDARDISE & IDENTIFY", 676 + "STANDARDIZE & IDENTIFY", 677 + "OPEN, REUSE & MAKE FINDABLE" 678 + ] 679 + }, 680 + { 681 + name:"GREEN", 682 + accent:"#38b76a", 683 + bg:"#edf9f1", 684 + text:"#3f7451", 685 + labels:[ 686 + "INFRASTRUKTUR EINRICHTEN", 687 + "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN", 688 + "SPEICHERN & ZUGRIFF STEUERN", 689 + "REPOSITORIUM, ERHALTEN & ÜBERGEBEN", 690 + "SET UP INFRASTRUCTURE", 691 + "SET UP INFRASTRUCTURE & COLLABORATION", 692 + "STORE & CONTROL ACCESS", 693 + "REPOSITORY, PRESERVE & HAND OVER" 694 + ] 695 + } 696 + ]; 697 + 698 + function num(value){ 699 + var n=parseFloat(value); 700 + return Number.isFinite(n)?n:0; 701 + } 702 + 703 + function norm(value){ 704 + return String(value||"") 705 + .replace(/\s+/g," ") 706 + .trim() 707 + .toUpperCase(); 708 + } 709 + 710 + function visible(el){ 711 + if(!el||el.nodeType!==1)return false; 712 + 713 + var style=getComputedStyle(el); 714 + var rect=el.getBoundingClientRect(); 715 + 716 + return ( 717 + style.display!=="none"&& 718 + style.visibility!=="hidden"&& 719 + rect.width>20&& 720 + rect.height>4 721 + ); 722 + } 723 + 724 + function saveStyle(el,map,property){ 725 + if(map.has(el))return; 726 + 727 + map.set(el,{ 728 + value:el.style.getPropertyValue(property), 729 + priority:el.style.getPropertyPriority(property) 730 + }); 731 + } 732 + 733 + function restoreStyle(el,map,property){ 734 + var original=map.get(el); 735 + 736 + if(original&&original.value){ 737 + el.style.setProperty( 738 + property, 739 + original.value, 740 + original.priority||"" 741 + ); 742 + }else{ 743 + el.style.removeProperty(property); 744 + } 745 + } 746 + 747 + function resetRuntime(){ 748 + managedHeight.forEach(function(el){ 749 + restoreStyle( 750 + el, 751 + originalHeight, 752 + "min-height" 753 + ); 754 + el.removeAttribute( 755 + "data-sn-master-equal-height" 756 + ); 757 + }); 758 + 759 + managedMargin.forEach(function(el){ 760 + restoreStyle( 761 + el, 762 + originalMargin, 763 + "margin-top" 764 + ); 765 + el.removeAttribute( 766 + "data-sn-master-first-row" 767 + ); 768 + }); 769 + 770 + managedHeight.clear(); 771 + managedMargin.clear(); 772 + } 773 + 774 + function themeFor(text){ 775 + var value=norm(text); 776 + 777 + for(var i=0;i<THEMES.length;i++){ 778 + for(var j=0;j<THEMES[i].labels.length;j++){ 779 + var label=THEMES[i].labels[j]; 780 + 781 + if( 782 + value===label|| 783 + value.indexOf(label+" ")===0|| 784 + value.indexOf(label+" -")===0|| 785 + value.indexOf(label+" ·")===0 786 + ){ 787 + return THEMES[i]; 788 + } 789 + } 790 + } 791 + 792 + return null; 793 + } 794 + 795 + /* ======================================================= 796 + BORDERLESS FILLED RED/ORANGE CTA BUTTONS 797 + ======================================================= */ 798 + 799 + function colourDistance(a,b){ 800 + return Math.sqrt( 801 + Math.pow(a[0]-b[0],2)+ 802 + Math.pow(a[1]-b[1],2)+ 803 + Math.pow(a[2]-b[2],2) 804 + ); 805 + } 806 + 807 + function makeFilledRedOrangeCTAsBorderless(){ 808 + var RED_ORANGE=[233,75,19]; 809 + 810 + Array.from( 811 + root.querySelectorAll( 812 + 'a,button,[role="button"],input[type="submit"],input[type="button"]' 813 + ) 814 + ).forEach(function(el){ 815 + if(!visible(el))return; 816 + 817 + var style=getComputedStyle(el); 818 + var rgb=parseRGB(style.backgroundColor); 819 + 820 + if(!rgb)return; 821 + 822 + if( 823 + colourDistance( 824 + rgb, 825 + RED_ORANGE 826 + )>55 827 + ){ 828 + return; 829 + } 830 + 831 + var rect=el.getBoundingClientRect(); 832 + 833 + if( 834 + rect.width<80|| 835 + rect.height<24 836 + ){ 837 + return; 838 + } 839 + 840 + el.style.setProperty( 841 + "border", 842 + "none", 843 + "important" 844 + ); 845 + 846 + el.style.setProperty( 847 + "border-left", 848 + "none", 849 + "important" 850 + ); 851 + 852 + el.style.setProperty( 853 + "border-top", 854 + "none", 855 + "important" 856 + ); 857 + 858 + el.style.setProperty( 859 + "border-right", 860 + "none", 861 + "important" 862 + ); 863 + 864 + el.style.setProperty( 865 + "border-bottom", 866 + "none", 867 + "important" 868 + ); 869 + 870 + el.style.setProperty( 871 + "box-shadow", 872 + "none", 873 + "important" 874 + ); 875 + }); 876 + } 877 + 878 + /* ======================================================= 879 + FULL-WIDTH THREE-LINE AREA LABELS 880 + ======================================================= */ 881 + 882 + function compactText(value){ 883 + return String(value||"") 884 + .replace(/\s+/g," ") 885 + .trim(); 886 + } 887 + 888 + function makeThreeLineAreaLabels(){ 889 + Array.from( 890 + root.querySelectorAll( 891 + ".arsn-area-label" 892 + ) 893 + ).forEach(function(label){ 894 + if( 895 + label.getAttribute( 896 + "data-sn-three-line" 897 + )==="1" 898 + ){ 899 + return; 900 + } 901 + 902 + var number= 903 + label.querySelector( 904 + ":scope > .arsn-area-number" 905 + ); 906 + 907 + var action= 908 + label.querySelector( 909 + ":scope > .arsn-area-action" 910 + ); 911 + 912 + if( 913 + !number|| 914 + !action 915 + ){ 916 + return; 917 + } 918 + 919 + var clone= 920 + label.cloneNode(true); 921 + 922 + var cloneNumber= 923 + clone.querySelector( 924 + ":scope > .arsn-area-number" 925 + ); 926 + 927 + var cloneAction= 928 + clone.querySelector( 929 + ":scope > .arsn-area-action" 930 + ); 931 + 932 + if(cloneNumber){ 933 + cloneNumber.remove(); 934 + } 935 + 936 + if(cloneAction){ 937 + cloneAction.remove(); 938 + } 939 + 940 + var titleText= 941 + compactText( 942 + clone.textContent 943 + ); 944 + 945 + if(!titleText){ 946 + return; 947 + } 948 + 949 + var numberNode= 950 + number.cloneNode(true); 951 + 952 + var actionNode= 953 + action.cloneNode(true); 954 + 955 + var titleNode= 956 + document.createElement( 957 + "span" 958 + ); 959 + 960 + titleNode.className= 961 + "sn-area-label-title"; 962 + 963 + titleNode.textContent= 964 + titleText; 965 + 966 + while(label.firstChild){ 967 + label.removeChild( 968 + label.firstChild 969 + ); 970 + } 971 + 972 + label.appendChild( 973 + numberNode 974 + ); 975 + 976 + label.appendChild( 977 + titleNode 978 + ); 979 + 980 + label.appendChild( 981 + actionNode 982 + ); 983 + 984 + label.setAttribute( 985 + "data-sn-three-line", 986 + "1" 987 + ); 988 + 989 + var head= 990 + label.closest( 991 + ".arsn-area-head" 992 + ); 993 + 994 + if(head){ 995 + head.style.setProperty( 996 + "width", 997 + "100%", 998 + "important" 999 + ); 1000 + 1001 + head.style.setProperty( 1002 + "max-width", 1003 + "100%", 1004 + "important" 1005 + ); 1006 + 1007 + head.style.setProperty( 1008 + "box-sizing", 1009 + "border-box", 1010 + "important" 1011 + ); 1012 + } 1013 + }); 1014 + } 1015 + 1016 + /* ======================================================= 1017 + PLACEHOLDER BADGE 1018 + ======================================================= */ 1019 + 1020 + function applyPlaceholderBadge(){ 1021 + if(!PLACEHOLDER)return; 1022 + 1023 + if( 1024 + document.querySelector( 1025 + ".sn-coming-soon-badge" 1026 + ) 1027 + ){ 1028 + return; 1029 + } 1030 + 1031 + var title= 1032 + document.querySelector( 1033 + "#document-title" 1034 + )|| 1035 + document.querySelector( 1036 + "h1" 1037 + ); 1038 + 1039 + if(!title)return; 1040 + 1041 + var badge= 1042 + document.createElement( 1043 + "span" 1044 + ); 1045 + 1046 + badge.className= 1047 + "sn-coming-soon-badge"; 1048 + 1049 + badge.textContent= 1050 + PLACEHOLDER_LABEL; 1051 + 1052 + badge.setAttribute( 1053 + "aria-label", 1054 + PLACEHOLDER_LABEL 1055 + ); 1056 + 1057 + title.appendChild( 1058 + badge 1059 + ); 1060 + } 1061 + 1062 + /* ======================================================= 1063 + DETAIL PAGE OWN-ACCENT PROPAGATION 1064 + ======================================================= */ 1065 + 1066 + function parseRGB(value){ 1067 + var match=String(value||"").match( 1068 + /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i 1069 + ); 1070 + 1071 + if(!match)return null; 1072 + 1073 + return [ 1074 + Number(match[1]), 1075 + Number(match[2]), 1076 + Number(match[3]) 1077 + ]; 1078 + } 1079 + 1080 + function distance(a,b){ 1081 + return Math.sqrt( 1082 + Math.pow(a[0]-b[0],2)+ 1083 + Math.pow(a[1]-b[1],2)+ 1084 + Math.pow(a[2]-b[2],2) 1085 + ); 1086 + } 1087 + 1088 + function paletteMatch(cssColor){ 1089 + var rgb=parseRGB(cssColor); 1090 + 1091 + if(!rgb)return null; 1092 + 1093 + var palette=[ 1094 + {hex:"#21b6d7",rgb:[33,182,215]}, 1095 + {hex:"#e94b13",rgb:[233,75,19]}, 1096 + {hex:"#f0aa00",rgb:[240,170,0]}, 1097 + {hex:"#38b76a",rgb:[56,183,106]} 1098 + ]; 1099 + 1100 + var best=null; 1101 + var bestDistance=Infinity; 1102 + 1103 + palette.forEach(function(item){ 1104 + var d=distance(rgb,item.rgb); 1105 + 1106 + if(d<bestDistance){ 1107 + best=item; 1108 + bestDistance=d; 1109 + } 1110 + }); 1111 + 1112 + return bestDistance<=30 1113 + ?best 1114 + :null; 1115 + } 1116 + 1117 + function propagateDetailAccents(){ 1118 + if(PAGE_KIND!=="detail")return; 1119 + 1120 + Array.from( 1121 + root.querySelectorAll( 1122 + ".arsn-call,.dmp-call,.ido-call,.pp-call,"+ 1123 + ".arsn-source,.dmp-source,.ido-source,.pp-source" 1124 + ) 1125 + ).forEach(function(el){ 1126 + if(!visible(el))return; 1127 + 1128 + var style=getComputedStyle(el); 1129 + 1130 + if( 1131 + num(style.borderTopWidth)>=2 1132 + ){ 1133 + var match= 1134 + paletteMatch( 1135 + style.borderTopColor 1136 + ); 1137 + 1138 + if(match){ 1139 + el.style.setProperty( 1140 + "border-left", 1141 + "4px solid "+match.hex, 1142 + "important" 1143 + ); 1144 + } 1145 + } 1146 + }); 1147 + 1148 + // Warning families: explicit safety override. 1149 + Array.from( 1150 + root.querySelectorAll( 1151 + ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+ 1152 + ".warn,.warning,.warningmessage,.errormessage" 1153 + ) 1154 + ).forEach(function(el){ 1155 + if(!visible(el))return; 1156 + 1157 + el.style.setProperty( 1158 + "border-left", 1159 + "4px solid #e94b13", 1160 + "important" 1161 + ); 1162 + }); 1163 + 1164 + // Info families: explicit orientation override. 1165 + Array.from( 1166 + root.querySelectorAll( 1167 + ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage" 1168 + ) 1169 + ).forEach(function(el){ 1170 + if(!visible(el))return; 1171 + 1172 + el.style.setProperty( 1173 + "border-left", 1174 + "4px solid #21b6d7", 1175 + "important" 1176 + ); 1177 + }); 1178 + } 1179 + 1180 + /* ======================================================= 1181 + OVERVIEW SEMANTIC THEME PALETTE 1182 + ======================================================= */ 1183 + 1184 + function smallestThemeHeaders(){ 1185 + return Array.from( 1186 + root.querySelectorAll( 1187 + "div,span,p,strong,h3,h4,h5,h6" 1188 + ) 1189 + ).filter(function(el){ 1190 + if(!visible(el))return false; 1191 + if(!themeFor(el.textContent))return false; 1192 + 1193 + return !Array.from( 1194 + el.children||[] 1195 + ).some(function(child){ 1196 + return !!themeFor( 1197 + child.textContent 1198 + ); 1199 + }); 1200 + }); 1201 + } 1202 + 1203 + function findOverviewCard(header){ 1204 + var node=header.parentElement; 1205 + var candidates=[]; 1206 + 1207 + while(node&&node!==root){ 1208 + var rect=node.getBoundingClientRect(); 1209 + var style=getComputedStyle(node); 1210 + 1211 + var border= 1212 + num(style.borderTopWidth)+ 1213 + num(style.borderRightWidth)+ 1214 + num(style.borderBottomWidth)+ 1215 + num(style.borderLeftWidth); 1216 + 1217 + if( 1218 + rect.width>=220&& 1219 + rect.width<=800&& 1220 + rect.height>=120&& 1221 + border>=1 1222 + ){ 1223 + candidates.push(node); 1224 + } 1225 + 1226 + node=node.parentElement; 1227 + } 1228 + 1229 + if(!candidates.length)return null; 1230 + 1231 + candidates.sort(function(a,b){ 1232 + return ( 1233 + b.getBoundingClientRect().height- 1234 + a.getBoundingClientRect().height 1235 + ); 1236 + }); 1237 + 1238 + return candidates[0]; 1239 + } 1240 + 1241 + function rowCandidates(link,card){ 1242 + var result=[]; 1243 + var cardRect= 1244 + card.getBoundingClientRect(); 1245 + 1246 + var node=link; 1247 + 1248 + while(node&&node!==card){ 1249 + if(visible(node)){ 1250 + var rect= 1251 + node.getBoundingClientRect(); 1252 + 1253 + if( 1254 + rect.height<=105&& 1255 + rect.width>= 1256 + cardRect.width*.50&& 1257 + rect.width<= 1258 + cardRect.width*1.03 1259 + ){ 1260 + result.push(node); 1261 + } 1262 + } 1263 + 1264 + node=node.parentElement; 1265 + } 1266 + 1267 + return result; 1268 + } 1269 + 1270 + function chooseOuterRow( 1271 + candidates, 1272 + link 1273 + ){ 1274 + if(!candidates.length){ 1275 + return link; 1276 + } 1277 + 1278 + var bordered= 1279 + candidates.filter(function(el){ 1280 + return ( 1281 + num( 1282 + getComputedStyle(el) 1283 + .borderLeftWidth 1284 + )>=1 1285 + ); 1286 + }); 1287 + 1288 + var pool= 1289 + bordered.length 1290 + ?bordered 1291 + :candidates; 1292 + 1293 + pool.sort(function(a,b){ 1294 + var ar= 1295 + a.getBoundingClientRect(); 1296 + 1297 + var br= 1298 + b.getBoundingClientRect(); 1299 + 1300 + return ( 1301 + ar.left-br.left|| 1302 + br.width-ar.width 1303 + ); 1304 + }); 1305 + 1306 + return pool[0]||link; 1307 + } 1308 + 1309 + function applyOverviewPalette(){ 1310 + if(PAGE_KIND!=="overview"){ 1311 + return []; 1312 + } 1313 + 1314 + var headers= 1315 + smallestThemeHeaders() 1316 + .map(function(el){ 1317 + return { 1318 + el:el, 1319 + theme: 1320 + themeFor( 1321 + el.textContent 1322 + ), 1323 + card: 1324 + findOverviewCard( 1325 + el 1326 + ) 1327 + }; 1328 + }) 1329 + .filter(function(row){ 1330 + return !!row.card; 1331 + }); 1332 + 1333 + var unique=[]; 1334 + var seenHeaders=new Set(); 1335 + 1336 + headers.forEach(function(row){ 1337 + var key= 1338 + row.theme.name+ 1339 + "|"+ 1340 + Math.round( 1341 + row.card 1342 + .getBoundingClientRect() 1343 + .left 1344 + )+ 1345 + "|"+ 1346 + Math.round( 1347 + row.el 1348 + .getBoundingClientRect() 1349 + .top 1350 + ); 1351 + 1352 + if(!seenHeaders.has(key)){ 1353 + seenHeaders.add(key); 1354 + unique.push(row); 1355 + } 1356 + }); 1357 + 1358 + unique.forEach(function(row){ 1359 + var headerRect= 1360 + row.el 1361 + .getBoundingClientRect(); 1362 + 1363 + row.el.style.setProperty( 1364 + "background", 1365 + row.theme.bg, 1366 + "important" 1367 + ); 1368 + 1369 + row.el.style.setProperty( 1370 + "color", 1371 + row.theme.text, 1372 + "important" 1373 + ); 1374 + 1375 + row.el.style.setProperty( 1376 + "text-align", 1377 + "left", 1378 + "important" 1379 + ); 1380 + 1381 + row.el.style.setProperty( 1382 + "word-spacing", 1383 + "normal", 1384 + "important" 1385 + ); 1386 + 1387 + var later= 1388 + unique 1389 + .filter(function(other){ 1390 + return ( 1391 + other.card===row.card&& 1392 + other.el 1393 + .getBoundingClientRect() 1394 + .top> 1395 + headerRect.top+2 1396 + ); 1397 + }) 1398 + .sort(function(a,b){ 1399 + return ( 1400 + a.el 1401 + .getBoundingClientRect() 1402 + .top- 1403 + b.el 1404 + .getBoundingClientRect() 1405 + .top 1406 + ); 1407 + }); 1408 + 1409 + var stopTop= 1410 + later.length 1411 + ?later[0].el 1412 + .getBoundingClientRect() 1413 + .top 1414 + :Infinity; 1415 + 1416 + Array.from( 1417 + row.card.querySelectorAll("a") 1418 + ).forEach(function(link){ 1419 + if(!visible(link))return; 1420 + 1421 + var rect= 1422 + link.getBoundingClientRect(); 1423 + 1424 + if( 1425 + rect.top<= 1426 + headerRect.bottom-2|| 1427 + rect.top>= 1428 + stopTop-2 1429 + ){ 1430 + return; 1431 + } 1432 + 1433 + var candidates= 1434 + rowCandidates( 1435 + link, 1436 + row.card 1437 + ); 1438 + 1439 + var target= 1440 + chooseOuterRow( 1441 + candidates, 1442 + link 1443 + ); 1444 + 1445 + candidates.forEach(function(el){ 1446 + el.style.setProperty( 1447 + "border-left", 1448 + "0 solid transparent", 1449 + "important" 1450 + ); 1451 + }); 1452 + 1453 + target.style.setProperty( 1454 + "border-left", 1455 + "3px solid "+ 1456 + row.theme.accent, 1457 + "important" 1458 + ); 1459 + 1460 + target.style.setProperty( 1461 + "box-sizing", 1462 + "border-box", 1463 + "important" 1464 + ); 1465 + }); 1466 + }); 1467 + 1468 + return unique; 1469 + } 1470 + 1471 + /* ======================================================= 1472 + OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW 1473 + ======================================================= */ 1474 + 1475 + function alignOverviewCards(headers){ 1476 + if( 1477 + PAGE_KIND!=="overview"|| 1478 + window.innerWidth<=MOBILE_MAX 1479 + ){ 1480 + return; 1481 + } 1482 + 1483 + var cards=[]; 1484 + var seen=new Set(); 1485 + 1486 + headers.forEach(function(row){ 1487 + if(!seen.has(row.card)){ 1488 + seen.add(row.card); 1489 + cards.push(row.card); 1490 + } 1491 + }); 1492 + 1493 + if(cards.length<2){ 1494 + return; 1495 + } 1496 + 1497 + // Group cards by actual top position. 1498 + var groups=[]; 1499 + 1500 + cards.forEach(function(card){ 1501 + var top= 1502 + card.getBoundingClientRect().top; 1503 + 1504 + var group=null; 1505 + 1506 + for(var i=0;i<groups.length;i++){ 1507 + if( 1508 + Math.abs( 1509 + groups[i].top-top 1510 + )<=ROW_TOLERANCE 1511 + ){ 1512 + group=groups[i]; 1513 + break; 1514 + } 1515 + } 1516 + 1517 + if(!group){ 1518 + group={ 1519 + top:top, 1520 + cards:[] 1521 + }; 1522 + groups.push(group); 1523 + } 1524 + 1525 + group.cards.push(card); 1526 + }); 1527 + 1528 + groups.forEach(function(group){ 1529 + if(group.cards.length<2){ 1530 + return; 1531 + } 1532 + 1533 + var firstHeaders= 1534 + group.cards.map(function(card){ 1535 + var candidates= 1536 + headers 1537 + .filter(function(row){ 1538 + return row.card===card; 1539 + }) 1540 + .sort(function(a,b){ 1541 + return ( 1542 + a.el 1543 + .getBoundingClientRect() 1544 + .top- 1545 + b.el 1546 + .getBoundingClientRect() 1547 + .top 1548 + ); 1549 + }); 1550 + 1551 + return candidates.length 1552 + ?candidates[0] 1553 + :null; 1554 + }); 1555 + 1556 + if( 1557 + !firstHeaders.some(function(row){ 1558 + return !row; 1559 + }) 1560 + ){ 1561 + var targetTop= 1562 + Math.max.apply( 1563 + Math, 1564 + firstHeaders.map(function(row){ 1565 + return ( 1566 + row.el 1567 + .getBoundingClientRect() 1568 + .top- 1569 + row.card 1570 + .getBoundingClientRect() 1571 + .top 1572 + ); 1573 + }) 1574 + ); 1575 + 1576 + firstHeaders.forEach(function(row){ 1577 + var relativeTop= 1578 + row.el 1579 + .getBoundingClientRect() 1580 + .top- 1581 + row.card 1582 + .getBoundingClientRect() 1583 + .top; 1584 + 1585 + var delta= 1586 + targetTop-relativeTop; 1587 + 1588 + if(delta>1){ 1589 + saveStyle( 1590 + row.el, 1591 + originalMargin, 1592 + "margin-top" 1593 + ); 1594 + 1595 + var current= 1596 + num( 1597 + getComputedStyle( 1598 + row.el 1599 + ).marginTop 1600 + ); 1601 + 1602 + row.el.style.setProperty( 1603 + "margin-top", 1604 + ( 1605 + current+delta 1606 + )+"px" 1607 + ); 1608 + 1609 + row.el.setAttribute( 1610 + "data-sn-master-first-row", 1611 + "1" 1612 + ); 1613 + 1614 + managedMargin.add( 1615 + row.el 1616 + ); 1617 + } 1618 + }); 1619 + } 1620 + 1621 + var maxHeight=0; 1622 + 1623 + group.cards.forEach(function(card){ 1624 + maxHeight= 1625 + Math.max( 1626 + maxHeight, 1627 + card 1628 + .getBoundingClientRect() 1629 + .height 1630 + ); 1631 + }); 1632 + 1633 + maxHeight= 1634 + Math.ceil(maxHeight); 1635 + 1636 + group.cards.forEach(function(card){ 1637 + saveStyle( 1638 + card, 1639 + originalHeight, 1640 + "min-height" 1641 + ); 1642 + 1643 + card.style.setProperty( 1644 + "min-height", 1645 + maxHeight+"px" 1646 + ); 1647 + 1648 + card.setAttribute( 1649 + "data-sn-master-equal-height", 1650 + "1" 1651 + ); 1652 + 1653 + managedHeight.add( 1654 + card 1655 + ); 1656 + }); 1657 + }); 1658 + } 1659 + 1660 + /* ======================================================= 1661 + DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY 1662 + ======================================================= */ 1663 + 1664 + function equaliseDetailGrids(){ 1665 + if( 1666 + PAGE_KIND!=="detail"|| 1667 + window.innerWidth<=MOBILE_MAX 1668 + ){ 1669 + return; 1670 + } 1671 + 1672 + var selectors=[ 1673 + ".arsn-grid", 1674 + ".arsn-grid-2", 1675 + ".arsn-grid-3", 1676 + ".dmp-grid", 1677 + ".ido-grid", 1678 + ".pp-grid" 1679 + ]; 1680 + 1681 + selectors.forEach(function(selector){ 1682 + Array.from( 1683 + root.querySelectorAll(selector) 1684 + ).forEach(function(grid){ 1685 + var children= 1686 + Array.from( 1687 + grid.children||[] 1688 + ).filter(visible); 1689 + 1690 + if(children.length<2){ 1691 + return; 1692 + } 1693 + 1694 + var groups=[]; 1695 + 1696 + children.forEach(function(child){ 1697 + var top= 1698 + child 1699 + .getBoundingClientRect() 1700 + .top; 1701 + 1702 + var group=null; 1703 + 1704 + for(var i=0;i<groups.length;i++){ 1705 + if( 1706 + Math.abs( 1707 + groups[i].top-top 1708 + )<=ROW_TOLERANCE 1709 + ){ 1710 + group=groups[i]; 1711 + break; 1712 + } 1713 + } 1714 + 1715 + if(!group){ 1716 + group={ 1717 + top:top, 1718 + items:[] 1719 + }; 1720 + groups.push(group); 1721 + } 1722 + 1723 + group.items.push(child); 1724 + }); 1725 + 1726 + groups.forEach(function(group){ 1727 + if(group.items.length<2){ 1728 + return; 1729 + } 1730 + 1731 + var maxHeight=0; 1732 + 1733 + group.items.forEach(function(item){ 1734 + maxHeight= 1735 + Math.max( 1736 + maxHeight, 1737 + item 1738 + .getBoundingClientRect() 1739 + .height 1740 + ); 1741 + }); 1742 + 1743 + maxHeight= 1744 + Math.ceil(maxHeight); 1745 + 1746 + group.items.forEach(function(item){ 1747 + saveStyle( 1748 + item, 1749 + originalHeight, 1750 + "min-height" 1751 + ); 1752 + 1753 + item.style.setProperty( 1754 + "min-height", 1755 + maxHeight+"px" 1756 + ); 1757 + 1758 + item.setAttribute( 1759 + "data-sn-master-equal-height", 1760 + "1" 1761 + ); 1762 + 1763 + managedHeight.add(item); 1764 + }); 1765 + }); 1766 + }); 1767 + }); 1768 + } 1769 + 1770 + /* ======================================================= 1771 + RUN / RESPONSIVE SCHEDULING 1772 + ======================================================= */ 1773 + 1774 + function run(){ 1775 + if(running)return; 1776 + 1777 + running=true; 1778 + 1779 + try{ 1780 + resetRuntime(); 1781 + applyPlaceholderBadge(); 1782 + propagateDetailAccents(); 1783 + 1784 + var headers= 1785 + applyOverviewPalette(); 1786 + 1787 + makeThreeLineAreaLabels(); 1788 + makeFilledRedOrangeCTAsBorderless(); 1789 + 1790 + if( 1791 + window.innerWidth> 1792 + MOBILE_MAX 1793 + ){ 1794 + alignOverviewCards( 1795 + headers 1796 + ); 1797 + 1798 + equaliseDetailGrids(); 1799 + } 1800 + }finally{ 1801 + running=false; 1802 + } 1803 + } 1804 + 1805 + function onResize(){ 1806 + if(resizeTimer){ 1807 + clearTimeout( 1808 + resizeTimer 1809 + ); 1810 + } 1811 + 1812 + resizeTimer= 1813 + setTimeout( 1814 + function(){ 1815 + resizeTimer=0; 1816 + run(); 1817 + }, 1818 + RESIZE_DEBOUNCE 1819 + ); 1820 + } 1821 + 1822 + async function waitForReady(){ 1823 + if( 1824 + document.readyState!=="complete" 1825 + ){ 1826 + await new Promise(function(resolve){ 1827 + window.addEventListener( 1828 + "load", 1829 + resolve, 1830 + {once:true} 1831 + ); 1832 + }); 1833 + } 1834 + 1835 + if( 1836 + document.fonts&& 1837 + document.fonts.ready 1838 + ){ 1839 + try{ 1840 + await document.fonts.ready; 1841 + }catch(error){} 1842 + } 1843 + 1844 + var images= 1845 + Array.from( 1846 + root.querySelectorAll("img") 1847 + ); 1848 + 1849 + await Promise.all( 1850 + images.map(function(img){ 1851 + if(img.complete){ 1852 + return Promise.resolve(); 1853 + } 1854 + 1855 + return new Promise(function(resolve){ 1856 + var done=function(){ 1857 + resolve(); 1858 + }; 1859 + 1860 + img.addEventListener( 1861 + "load", 1862 + done, 1863 + {once:true} 1864 + ); 1865 + 1866 + img.addEventListener( 1867 + "error", 1868 + done, 1869 + {once:true} 1870 + ); 1871 + }); 1872 + }) 1873 + ); 1874 + 1875 + run(); 1876 + } 1877 + 1878 + window.addEventListener( 1879 + "resize", 1880 + onResize, 1881 + {passive:true} 1882 + ); 1883 + 1884 + waitForReady(); 1885 +})(); 1886 +</script> 1887 + 1888 +<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END --> 1889 +{{/html}} 1890 +